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

* modul tim_pengawasan dan pkpt

parent 0463c2fa
...@@ -410,4 +410,13 @@ if ( ! function_exists('blob_to_string')) ...@@ -410,4 +410,13 @@ if ( ! function_exists('blob_to_string'))
$userStr .= chr(bindec($ch)); $userStr .= chr(bindec($ch));
return $userStr; 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 ...@@ -2954,4 +2954,34 @@ class Pilih extends Pilih_Controller
echo json_encode($response); 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);
}
} }
...@@ -18,7 +18,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -18,7 +18,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->from('tahun_anggaran a'); $this->db->from('tahun_anggaran a');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('a.tahun containing', $param['q']); //$this->db->where('a.tahun containing', $param['q']);
$this->db->like('a.tahun', $param['q']);
$this->db->order_by('a.tahun'); $this->db->order_by('a.tahun');
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -31,7 +32,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -31,7 +32,8 @@ class Pilih_dasar_model extends Pilih_Model
'); ');
$this->db->from('status_anggaran a'); $this->db->from('status_anggaran a');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('a.name containing', $param['q']); //$this->db->where('a.name containing', $param['q']);
$this->db->like('Upper(a.name)', strtoupper($param['q']));
$this->db->where('a.tahun', $param['tahun']); $this->db->where('a.tahun', $param['tahun']);
$this->db->order_by('a.status'); $this->db->order_by('a.status');
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
...@@ -48,7 +50,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -48,7 +50,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->from('groups a'); $this->db->from('groups a');
$this->db->where('a.appid', $this->app_id); $this->db->where('a.appid', $this->app_id);
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('a.name containing', $param['q']); //$this->db->where('a.name containing', $param['q']);
$this->db->like('Upper(a.name)', strtoupper($param['q']));
$this->db->order_by('a.name'); $this->db->order_by('a.name');
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -78,7 +81,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -78,7 +81,8 @@ class Pilih_dasar_model extends Pilih_Model
'); ');
$this->db->from("(" . $sql . ") s"); $this->db->from("(" . $sql . ") s");
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.jabatan containing', $param['q']); //$this->db->where('s.jabatan containing', $param['q']);
$this->db->like('Upper(s.jabatan)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -119,7 +123,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -119,7 +123,8 @@ class Pilih_dasar_model extends Pilih_Model
'); ');
$this->db->from("(" . $sql . ") s"); $this->db->from("(" . $sql . ") s");
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.jabatan containing', $param['q']); //$this->db->where('s.jabatan containing', $param['q']);
$this->db->like('Upper(s.jabatan)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -134,7 +139,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -134,7 +139,8 @@ class Pilih_dasar_model extends Pilih_Model
'); ');
$this->db->from("ref_jab_tim_audit s"); $this->db->from("ref_jab_tim_audit s");
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.uraian containing', $param['q']); //$this->db->where('s.uraian containing', $param['q']);
$this->db->like('Upper(s.uraian)', strtoupper($param['q']));
if ($param['mode'] == 'tim_penugasan') if ($param['mode'] == 'tim_penugasan')
$this->db->where('s.no_urut > 4'); $this->db->where('s.no_urut > 4');
...@@ -153,7 +159,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -153,7 +159,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->from('pejabat_daerah s'); $this->db->from('pejabat_daerah s');
$this->db->where('s.aktif', '1'); $this->db->where('s.aktif', '1');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.nama_pejabat containing', $param['q']); //$this->db->where('s.nama_pejabat containing', $param['q']);
$this->db->like('Upper(s.nama_pejabat)', strtoupper($param['q']));
if ($param['mode'] == 'bud') if ($param['mode'] == 'bud')
$this->db->where('s.kode_jabatan', 'BUD'); $this->db->where('s.kode_jabatan', 'BUD');
...@@ -176,7 +183,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -176,7 +183,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->where('s.id_skpd', $param['skpd']); $this->db->where('s.id_skpd', $param['skpd']);
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.nama_pejabat containing', $param['q']); //$this->db->where('s.nama_pejabat containing', $param['q']);
$this->db->like('Upper(s.nama_pejabat)', strtoupper($param['q']));
if ($param['kode'] != '') { if ($param['kode'] != '') {
$this->db->limit(1); $this->db->limit(1);
...@@ -202,7 +210,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -202,7 +210,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->where('s.id_unit_kerja', $param['unit_kerja']); $this->db->where('s.id_unit_kerja', $param['unit_kerja']);
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.nama_pejabat containing', $param['q']); //$this->db->where('s.nama_pejabat containing', $param['q']);
$this->db->like('Upper(s.nama_pejabat)', strtoupper($param['q']));
if ($param['kode'] != '') { if ($param['kode'] != '') {
// $this->db->limit(1); // $this->db->limit(1);
...@@ -210,7 +219,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -210,7 +219,8 @@ class Pilih_dasar_model extends Pilih_Model
} }
if ($param['jab'] != '') if ($param['jab'] != '')
$this->db->where('s.jabatan containing', $param['jab']); //$this->db->where('s.jabatan containing', $param['jab']);
$this->db->like('Upper(s.jabatan)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -228,7 +238,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -228,7 +238,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->from('ref_pejabat_spi s'); $this->db->from('ref_pejabat_spi s');
$this->db->where('s.aktif', '1'); $this->db->where('s.aktif', '1');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.nama containing', $param['q']); //$this->db->where('s.nama containing', $param['q']);
$this->db->like('Upper(s.nama)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -245,7 +256,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -245,7 +256,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->join('ref_jab_tim_audit c', 'c.id_jab_tim_audit = a.id_jab_tim_audit'); $this->db->join('ref_jab_tim_audit c', 'c.id_jab_tim_audit = a.id_jab_tim_audit');
$this->db->where('a.id_surat', $param['id_surat']); $this->db->where('a.id_surat', $param['id_surat']);
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('b.nama containing', $param['q']); //$this->db->where('b.nama containing', $param['q']);
$this->db->like('Upper(b.nama)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -267,7 +279,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -267,7 +279,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->group_by('1,2,3'); $this->db->group_by('1,2,3');
} }
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.nama_satker containing', $param['q']); //$this->db->where('s.nama_satker containing', $param['q']);
$this->db->like('Upper(s.nama_satker)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
...@@ -284,7 +297,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -284,7 +297,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->from('ref_jns_penugasan s'); $this->db->from('ref_jns_penugasan s');
$this->db->where('s.lvl', '3'); $this->db->where('s.lvl', '3');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.jenis_penugasan containing', $param['q']); //$this->db->where('s.jenis_penugasan containing', $param['q']);
$this->db->like('Upper(s.jenis_penugasan)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -299,7 +313,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -299,7 +313,8 @@ class Pilih_dasar_model extends Pilih_Model
'); ');
$this->db->from('ref_jns_pemeriksaan s'); $this->db->from('ref_jns_pemeriksaan s');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.jenis_pemeriksaan containing', $param['q']); //$this->db->where('s.jenis_pemeriksaan containing', $param['q']);
$this->db->like('Upper(s.jenis_pemeriksaan)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -329,7 +344,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -329,7 +344,8 @@ class Pilih_dasar_model extends Pilih_Model
'); ');
$this->db->from("(" . $sql . ") s"); $this->db->from("(" . $sql . ") s");
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.jabatan containing', $param['q']); //$this->db->where('s.jabatan containing', $param['q']);
$this->db->like('Upper(s.jabatan)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -411,8 +427,10 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -411,8 +427,10 @@ class Pilih_dasar_model extends Pilih_Model
if ($param['q'] != '') { if ($param['q'] != '') {
$this->db->where('s.kode_skpd_lkp containing', $param['q']); //$this->db->where('s.kode_skpd_lkp containing', $param['q']);
$this->db->or_where('s.nama_skpd containing', $param['q']); //$this->db->or_where('s.nama_skpd containing', $param['q']);
$this->db->like('Upper(s.kode_bidang_lkp)', strtoupper($param['q']));
$this->db->or_like('Upper(s.nama_skpd)', strtoupper($param['q']));
} }
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
...@@ -494,8 +512,10 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -494,8 +512,10 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->from('v_bidang b'); $this->db->from('v_bidang b');
if ($param['q'] != '') { if ($param['q'] != '') {
$this->db->where('b.kode_bidang_lkp containing', $param['q']); //$this->db->where('b.kode_bidang_lkp containing', $param['q']);
$this->db->or_where('b.nama_bidang containing', $param['q']); //$this->db->or_where('b.nama_bidang containing', $param['q']);
$this->db->like('Upper(b.kode_bidang_lkp)', strtoupper($param['q']));
$this->db->or_like('Upper(b.nama_bidang)', strtoupper($param['q']));
} }
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
...@@ -1198,8 +1218,10 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -1198,8 +1218,10 @@ class Pilih_dasar_model extends Pilih_Model
if ($param['q'] != '') { if ($param['q'] != '') {
$this->db->where('s.kode_unit_kerja containing', $param['q']); //$this->db->where('s.kode_unit_kerja containing', $param['q']);
$this->db->or_where('s.nama_unit_kerja containing', $param['q']); //$this->db->or_where('s.nama_unit_kerja containing', $param['q']);
$this->db->like('Upper(s.kode_unit_kerja)', strtoupper($param['q']));
$this->db->like('Upper(s.nama_unit_kerja)', strtoupper($param['q']));
} }
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
...@@ -1975,7 +1997,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -1975,7 +1997,8 @@ class Pilih_dasar_model extends Pilih_Model
// } // }
if ($param['q'] != '') { if ($param['q'] != '') {
$this->db->where('s.nama_pejabat containing', $param['q']); //$this->db->where('s.nama_pejabat containing', $param['q']);
$this->db->like('Upper(s.nama_pejabat)', strtoupper($param['q']));
} }
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
...@@ -1999,7 +2022,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -1999,7 +2022,8 @@ class Pilih_dasar_model extends Pilih_Model
} }
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('r.NAMA_JABATAN containing', $param['q']); //$this->db->where('r.NAMA_JABATAN containing', $param['q']);
$this->db->like('Upper(s.nama_jabatan)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -2301,7 +2325,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -2301,7 +2325,8 @@ class Pilih_dasar_model extends Pilih_Model
'); ');
$this->db->from('ref_jabatan s'); $this->db->from('ref_jabatan s');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.nama_jabatan containing', $param['q']); //$this->db->where('s.nama_jabatan containing', $param['q']);
$this->db->like('Upper(s.nama_jabatan)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -2316,7 +2341,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -2316,7 +2341,8 @@ class Pilih_dasar_model extends Pilih_Model
'); ');
$this->db->from('ref_golongan s'); $this->db->from('ref_golongan s');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.pangkat containing', $param['q']); //$this->db->where('s.pangkat containing', $param['q']);
$this->db->like('Upper(s.pangkat)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -2330,7 +2356,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -2330,7 +2356,8 @@ class Pilih_dasar_model extends Pilih_Model
'); ');
$this->db->from('ref_program_pengawasan s'); $this->db->from('ref_program_pengawasan s');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.uraian containing', $param['q']); //$this->db->where('s.uraian containing', $param['q']);
$this->db->like('Upper(s.uraian)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -2346,7 +2373,8 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -2346,7 +2373,8 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->from('ref_jns_temuan s'); $this->db->from('ref_jns_temuan s');
$this->db->where('s.ref_3 <>', ''); $this->db->where('s.ref_3 <>', '');
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('s.jenis_penugasan containing', $param['q']); //$this->db->where('s.jenis_penugasan containing', $param['q']);
$this->db->like('Upper(s.jenis_penugasan)', strtoupper($param['q']));
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
...@@ -2410,9 +2438,9 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -2410,9 +2438,9 @@ class Pilih_dasar_model extends Pilih_Model
$this->db->where('b.id_surat', $param['id_surat']); $this->db->where('b.id_surat', $param['id_surat']);
if ($param['q'] != '') if ($param['q'] != '')
$this->db->where('c.nama containing', $param['q']); //$this->db->where('c.nama containing', $param['q']);
$this->db->like('Upper(c.nama)', strtoupper($param['q']));
if ($param['kode'] == 'reviu') if ($param['kode'] == 'reviu')
//$this->db->where('d.uraian containing', $param['kode']);
$this->db->where('d.uraian', 'Anggota Tim'); $this->db->where('d.uraian', 'Anggota Tim');
if($param['mode'] == 'kertas_kerja' && $param['kode'] == 'dibuat') if($param['mode'] == 'kertas_kerja' && $param['kode'] == 'dibuat')
$this->db->where_in('c.nama', $temp); $this->db->where_in('c.nama', $temp);
...@@ -2642,4 +2670,25 @@ class Pilih_dasar_model extends Pilih_Model ...@@ -2642,4 +2670,25 @@ class Pilih_dasar_model extends Pilih_Model
$result = $this->db->get('proker_pengawasan_rinci')->result_array(); $result = $this->db->get('proker_pengawasan_rinci')->result_array();
return $result; return $result;
} }
function getTimPengawasanSelect($param)
{
$this->db->select('
t.id_tim_pengawasan_rinci,
t.nama_tim,
(
select group_concat(b.NAMA)
from tim_pengawasan_pejabat a
join ref_pejabat_spi b on b.ID_PEJABAT_SPI = a.id_pejabat_spi
where a.id_tim_pengawasan_rinci = t.id_tim_pengawasan_rinci
) pejabat
');
$this->db->from('tim_pengawasan_rinci t');
$this->db->where('t.aktif','Y');
if ($param['q'] != '')
$this->db->like('Upper(t.nama_tim)', strtoupper($param['q']));
$this->db->order_by('t.nama_tim');
$result = $this->db->get()->result_array();
return $result;
}
} }
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Pkpt extends AktivitasBLUD_Controller class Pkpt extends Base_Controller
{ {
public function __construct() public function __construct()
...@@ -17,6 +17,98 @@ class Pkpt extends AktivitasBLUD_Controller ...@@ -17,6 +17,98 @@ class Pkpt extends AktivitasBLUD_Controller
$this->message_aktivitas_dihapus = 'PKPT telah dihapus.'; $this->message_aktivitas_dihapus = 'PKPT telah dihapus.';
$this->message_aktivitas_gagal_dihapus = 'PKPT tidak bisa dihapus.'; $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() public function validasi_form()
{ {
...@@ -34,73 +126,48 @@ class Pkpt extends AktivitasBLUD_Controller ...@@ -34,73 +126,48 @@ 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; $response = (object) NULL;
if ($result) { for($i=1; $i<13; $i++)
for ($i = 0; $i < count($result); $i++) { {
$response->rows[$i]['id'] = $result[$i]['id_pkpt_rinci']; $data = array();
$response->rows[$i]['cell'] = array( $data[] = 'u'.$i;
$result[$i]['id_pkpt_rinci'], $data[] = $i;
$result[$i]['id_object'], $data[] = strtoupper(bulan_indonesia($i));
$result[$i]['id_parent'], $data[] = 1; // lvl
$result[$i]['objek_pemeriksaan'],
$result[$i]['pengampu'], $row = new stdClass();
$result[$i]['jan_1'], $row->id = $i;
$result[$i]['jan_2'], $row->cell = $data;
$result[$i]['jan_3'], $response->rows[] = $row;
$result[$i]['jan_4'],
$result[$i]['feb_1'], if($id > 0){
$result[$i]['feb_2'], $result = $this->data_model->get_rinci_by_id($id,$i);
$result[$i]['feb_3'], for($x=0;$x<count($result);$x++){
$result[$i]['feb_4'], $satker = $this->data_model->get_satker($result[$x]['id_pkpt_rinci']);
$result[$i]['mar_1'],
$result[$i]['mar_2'], $data = array();
$result[$i]['mar_3'], $data[] = $result[$x]['id_pkpt_rinci'];
$result[$i]['mar_4'], $data[] = $i;
$result[$i]['apr_1'], $data[] = '';
$result[$i]['apr_2'], $data[] = 0; // lvl
$result[$i]['apr_3'], $data[] = $result[$x]['id_tim_pengawasan'];
$result[$i]['apr_4'], $data[] = $satker['id']?$satker['id']:NULL;
$result[$i]['mei_1'], $data[] = $result[$x]['nama_tim'] .' - '.$result[$x]['pejabat'];
$result[$i]['mei_2'], $data[] = $result[$x]['uraian'];
$result[$i]['mei_3'], $data[] = $satker['kode']?$satker['kode']:NULL;
$result[$i]['mei_4'], $data[] = $result[$x]['tanggal'];
$result[$i]['jun_1'],
$result[$i]['jun_2'], $row = new stdClass();
$result[$i]['jun_3'], $row->id = $result[$x]['id_pkpt_rinci'];
$result[$i]['jun_4'], $row->cell = $data;
$result[$i]['jul_1'], $response->rows[] = $row;
$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']
);
} }
} }
$response->sql = $this->db->queries;
echo json_encode($response); echo json_encode($response);
} }
} }
...@@ -6,9 +6,12 @@ class Pkpt_model extends Base_Model ...@@ -6,9 +6,12 @@ class Pkpt_model extends Base_Model
var $fieldmap_daftar; var $fieldmap_daftar;
var $fieldmap_filter; var $fieldmap_filter;
var $fieldmap_pkpt; var $fieldmap_pkpt;
var $fieldmap_pkpt_rinci;
var $fieldmap_pkpt_satker;
var $fieldmap_tanggal_aktif; var $fieldmap_tanggal_aktif;
var $data_pkpt; var $data_pkpt;
var $data_tim; var $data_pkpt_rinci;
var $data_pkpt_satker;
var $nomor; var $nomor;
var $purge; var $purge;
...@@ -39,61 +42,18 @@ class Pkpt_model extends Base_Model ...@@ -39,61 +42,18 @@ class Pkpt_model extends Base_Model
'tahun' => 'tahun', 'tahun' => 'tahun',
); );
$this->fieldmap_tim = array( $this->fieldmap_pkpt_rinci = array(
'id_rinci' => 'id_pkpt_rinci', 'id_rinci' => 'id_pkpt_rinci',
'id_pkpt' => 'id_pkpt', 'id_pkpt' => 'id_pkpt',
'idobj' => 'id_object', 'id_bulan' => 'id_bulan',
'id_parent' => 'id_parent', 'id_tim_pengawasan' => 'id_tim_pengawasan',
'pengampu' => 'pengampu', 'uraian' => 'uraian',
'jan_1' => 'jan_1', 'tanggal' => 'tanggal'
'jan_2' => 'jan_2', );
'jan_3' => 'jan_3',
'jan_4' => 'jan_4', $this->fieldmap_pkpt_satker = array(
'feb_1' => 'feb_1', 'id_rinci' => 'id_pkpt_rinci',
'feb_2' => 'feb_2', 'idskpd' => 'id_satker',
'feb_3' => 'feb_3',
'feb_4' => 'feb_4',
'mar_1' => 'mar_1',
'mar_2' => 'mar_2',
'mar_3' => 'mar_3',
'mar_4' => 'mar_4',
'apr_1' => 'apr_1',
'apr_2' => 'apr_2',
'apr_3' => 'apr_3',
'apr_4' => 'apr_4',
'mei_1' => 'mei_1',
'mei_2' => 'mei_2',
'mei_3' => 'mei_3',
'mei_4' => 'mei_4',
'jun_1' => 'jun_1',
'jun_2' => 'jun_2',
'jun_3' => 'jun_3',
'jun_4' => 'jun_4',
'jul_1' => 'jul_1',
'jul_2' => 'jul_2',
'jul_3' => 'jul_3',
'jul_4' => 'jul_4',
'ags_1' => 'ags_1',
'ags_2' => 'ags_2',
'ags_3' => 'ags_3',
'ags_4' => 'ags_4',
'sep_1' => 'sep_1',
'sep_2' => 'sep_2',
'sep_3' => 'sep_3',
'sep_4' => 'sep_4',
'okt_1' => 'okt_1',
'okt_2' => 'okt_2',
'okt_3' => 'okt_3',
'okt_4' => 'okt_4',
'nov_1' => 'nov_1',
'nov_2' => 'nov_2',
'nov_3' => 'nov_3',
'nov_4' => 'nov_4',
'des_1' => 'des_1',
'des_2' => 'des_2',
'des_3' => 'des_3',
'des_4' => 'des_4',
'level' => 'level',
); );
$this->fieldmap_daftar_aggregate = array( $this->fieldmap_daftar_aggregate = array(
...@@ -146,25 +106,34 @@ class Pkpt_model extends Base_Model ...@@ -146,25 +106,34 @@ class Pkpt_model extends Base_Model
} }
/* ambil data tim */ /* ambil data pkpt */
$this->purge = $this->input->post('purge'); $this->purge = $this->purge ? $this->purge : NULL; $this->purge = $this->input->post('purge'); $this->purge = $this->purge ? $this->purge : NULL;
$tim = $this->input->post('tim') ? $this->input->post('tim') : NULL; $pkpt = $this->input->post('pkpt') ? $this->input->post('pkpt') : NULL;
if ($tim) { if ($pkpt) {
$tim = json_decode($tim); $pkpt = json_decode($pkpt);
for ($i = 0; $i <= count($tim) - 1; $i++) { for ($i = 0; $i <= count($pkpt) - 1; $i++) {
foreach ($this->fieldmap_tim as $key => $value) { foreach ($this->fieldmap_pkpt_rinci as $key => $value) {
switch ($key) {
default: $$key = isset($pkpt[$i]->$key) && $pkpt[$i]->$key ? $pkpt[$i]->$key : NULL;
}
if (isset($$key))
$this->data_pkpt_rinci[$i][$value] = $$key;
}
}
for ($i = 0; $i <= count($pkpt) - 1; $i++) {
foreach ($this->fieldmap_pkpt_satker as $key => $value) {
switch ($key) { switch ($key) {
case 'level' : $$key = isset($tim[$i]->$key) && $tim[$i]->$key ? $tim[$i]->$key : 0; break; default: $$key = isset($pkpt[$i]->$key) && $pkpt[$i]->$key ? $pkpt[$i]->$key : 0;
default: $$key = isset($tim[$i]->$key) && $tim[$i]->$key ? $tim[$i]->$key : NULL;
} }
if (isset($$key)) if (isset($$key))
$this->data_tim[$i][$value] = $$key; $this->data_pkpt_satker[$i][$value] = $$key;
} }
} }
//die(print_r($this->data_tim));
} }
} }
...@@ -178,7 +147,6 @@ class Pkpt_model extends Base_Model ...@@ -178,7 +147,6 @@ class Pkpt_model extends Base_Model
$this->id = $this->data_pkpt['id_pkpt']; $this->id = $this->data_pkpt['id_pkpt'];
} }
else { else {
//$id = $this->get_id('g_id_pkpt');
$this->db->select_max('id_pkpt')->from('pkpt'); $this->db->select_max('id_pkpt')->from('pkpt');
$res = $this->db->get()->row_array(); $res = $this->db->get()->row_array();
$id = $res['id_pkpt']+1; $id = $res['id_pkpt']+1;
...@@ -191,10 +159,8 @@ class Pkpt_model extends Base_Model ...@@ -191,10 +159,8 @@ class Pkpt_model extends Base_Model
$this->nomor = $this->data_pkpt['nomor']; $this->nomor = $this->data_pkpt['nomor'];
} }
function insert_tim() function insert_rinci()
{ {
$no_urut = 1;
$idp = 0;
if ($this->purge) if ($this->purge)
{ {
...@@ -204,52 +170,74 @@ class Pkpt_model extends Base_Model ...@@ -204,52 +170,74 @@ class Pkpt_model extends Base_Model
$this->check_trans_status('delete pkpt_rinci failed'); $this->check_trans_status('delete pkpt_rinci failed');
} }
$jml = count($this->data_tim); $jml = count($this->data_pkpt_rinci);
for ($i = 0; $i <= $jml - 1; $i++) { for ($i = 0; $i <= $jml - 1; $i++) {
$this->data_tim[$i]['NO_URUT'] = $no_urut; $idr = isset($this->data_pkpt_rinci[$i]['id_pkpt_rinci']) ? str_replace('new_', 0, $this->data_pkpt_rinci[$i]['id_pkpt_rinci']) : null;
$temp = $idr;
//$idr = $this->data_tim[$i]['ID_PKPT_RINCI'];
$idr = isset($this->data_tim[$i]['id_pkpt_rinci']) ? str_replace('new_', 0, $this->data_tim[$i]['id_pkpt_rinci']) : null;
if($this->data_tim[$i]['level']==1)
$this->data_tim[$i]['id_parent'] = null;
else
$this->data_tim[$i]['id_parent'] = $idp;
$this->db->select('1')->from('pkpt_rinci')->where('id_pkpt', $this->id)->where('id_pkpt_rinci', $idr); $this->db->select('id_pkpt_rinci')->from('pkpt_rinci')->where('id_pkpt', $this->id)->where('id_pkpt_rinci', $idr);
$rs = $this->db->get()->row_array(); $rs = $this->db->get()->row_array();
if ($rs){ if ($rs){
$this->data_tim[$i]['id_pkpt'] = $this->id; $idp = $idr;
$this->db->where('id_pkpt_rinci', $idr); $this->db->where('id_pkpt_rinci', $idr);
$this->db->where('id_pkpt', $this->id); $this->db->where('id_pkpt', $this->id);
$this->db->update('pkpt_rinci', $this->data_tim[$i]); $this->db->update('pkpt_rinci', $this->data_pkpt_rinci[$i]);
$this->check_trans_status('update pkpt_rinci failed'); $this->check_trans_status('update pkpt_rinci failed');
$idmkr = $idr;
} }
else{ else{
unset($this->data_tim[$i]['id_pkpt_rinci']); $temp = $this->data_pkpt_rinci[$i]['id_pkpt_rinci'];
$this->data_tim[$i]['id_pkpt'] = $this->id; unset($this->data_pkpt_rinci[$i]['id_pkpt_rinci']);
$this->data_pkpt_rinci[$i]['id_pkpt'] = $this->id;
$this->db->insert('pkpt_rinci', $this->data_tim[$i]); $this->db->insert('pkpt_rinci', $this->data_pkpt_rinci[$i]);
$this->check_trans_status('insert pkpt_rinci failed'); $this->check_trans_status('insert pkpt_rinci failed');
if($this->data_tim[$i]['level']==1){ $this->db->select_max('id_pkpt_rinci')->from('pkpt_rinci');
$this->db->select_max('id_pkpt_rinci')->from('pkpt_rinci'); $res = $this->db->get()->row_array();
$res = $this->db->get()->row_array(); $idmkr = $res['id_pkpt_rinci'];
$idp = $res['id_pkpt_rinci']; }
/* hapus dulu data exist */
if (array_key_exists('id_satker',$this->data_pkpt_satker[$i]))
{
$tambahan = $this->data_pkpt_satker[$i]['id_satker'];
$data_satker = [];
$this->db->where('id_pkpt_rinci', $idmkr)->delete('pkpt_satker');
if($tambahan == 0)
continue;
if(strpos($tambahan, ",")){
$tambahan = explode(",", $tambahan);
//die(print_r($tambahan));
for ($i3 = 0; $i3 < count($tambahan); $i3++)
{
$data_satker['id_pkpt_rinci'] = $idmkr;
$data_satker['id_satker'] = $tambahan[$i3];
$this->db->insert('pkpt_satker', $data_satker);
}
for ($i4 = 0; $i4 < count($data_satker); $i4++)
{
$this->db->insert('pkpt_satker', $data_satker[$i4]);
}
}
else{
$data_satker['id_pkpt_rinci'] = $idmkr;
$data_satker['id_satker'] = $tambahan;
$this->db->insert('pkpt_satker', $data_satker);
} }
} }
$no_urut+=1;
} }
} }
function save_detail() function save_detail()
{ {
$this->insert_pkpt(); $this->insert_pkpt();
$this->insert_tim(); $this->insert_rinci();
} }
/* Query daftar */ /* Query daftar */
...@@ -292,77 +280,69 @@ class Pkpt_model extends Base_Model ...@@ -292,77 +280,69 @@ class Pkpt_model extends Base_Model
function build_query_hapus($id = 0) function build_query_hapus($id = 0)
{ {
$this->db->select("a.id_pkpt_rinci");
$this->db->where('a.id_pkpt', $id);
$result = $this->db->get('pkpt_rinci a')->result_array();
for($i=0;$i<count($result);$i++){
$this->db->where('id_pkpt_rinci', $result[$i]['id_pkpt_rinci'])->delete('pkpt_satker');
$this->check_trans_status('delete pkpt_satker failed');
}
$this->db->where('id_pkpt', $id)->delete('pkpt_rinci'); $this->db->where('id_pkpt', $id)->delete('pkpt_rinci');
$this->check_trans_status('delete pkpt_rinci failed'); $this->check_trans_status('delete pkpt_rinci failed');
$this->db->where('id_pkpt', $id)->delete('pkpt'); $this->db->where('id_pkpt', $id)->delete('pkpt');
$this->check_trans_status('delete pkpt failed'); $this->check_trans_status('delete pkpt failed');
} }
function get_rinci_by_id($id = 0) function get_rinci_by_id($id = 0,$id_bulan = 0)
{ {
$this->db->select(' $this->db->select('
a.id_pkpt_rinci, a.id_pkpt_rinci,
a.id_object, a.id_pkpt,
a.id_parent, a.id_bulan,
a.pengampu, a.id_tim_pengawasan,
a.jan_1, a.uraian,
a.jan_2, a.tanggal,
a.jan_3, t.nama_tim,
a.jan_4, (
a.feb_1, select group_concat(b.NAMA)
a.feb_2, from tim_pengawasan_pejabat a
a.feb_3, join ref_pejabat_spi b on b.ID_PEJABAT_SPI = a.id_pejabat_spi
a.feb_4, where a.id_tim_pengawasan_rinci = t.id_tim_pengawasan_rinci
a.mar_1, ) pejabat
a.mar_2,
a.mar_3,
a.mar_4,
a.apr_1,
a.apr_2,
a.apr_3,
a.apr_4,
a.mei_1,
a.mei_2,
a.mei_3,
a.mei_4,
a.jun_1,
a.jun_2,
a.jun_3,
a.jun_4,
a.jul_1,
a.jul_2,
a.jul_3,
a.jul_4,
a.ags_1,
a.ags_2,
a.ags_3,
a.ags_4,
a.sep_1,
a.sep_2,
a.sep_3,
a.sep_4,
a.okt_1,
a.okt_2,
a.okt_3,
a.okt_4,
a.nov_1,
a.nov_2,
a.nov_3,
a.nov_4,
a.des_1,
a.des_2,
a.des_3,
a.des_4,
a.level,
if(a.level = 0, (select r.nama_satker from ref_satker r where r.id_satker = a.id_object), (select r.jenis_pemeriksaan from ref_jns_pemeriksaan r where r.id_jns = a.id_object)) objek_pemeriksaan,
a.no_urut
'); ');
$this->db->from('pkpt_rinci a'); $this->db->from('pkpt_rinci a');
$this->db->join('pkpt b', 'b.id_pkpt = a.id_pkpt'); $this->db->join('tim_pengawasan_rinci t','t.id_tim_pengawasan_rinci = a.id_tim_pengawasan');
$this->db->where('a.id_pkpt', $id); $this->db->where('a.id_pkpt', $id);
$this->db->order_by('a.no_urut'); //die(print_r($this->db->get_compiled_select())); $this->db->where('a.id_bulan', $id_bulan);
$result = $this->db->get()->result_array(); $result = $this->db->get()->result_array();
return $result; return $result;
} }
function get_satker($id_pkpt_rinci)
{
$this->db->select('a.id_pkpt_rinci, a.id_satker, b.nama_satker, b.kode_satker')
->from('pkpt_satker a')
->join('ref_satker b', 'b.id_satker = a.id_satker')
->where('a.id_pkpt_rinci', $id_pkpt_rinci)
->order_by('b.kode_satker');
$bid = $this->db->get()->result_array();
$id = array();
$kode = array();
$kodex = array();
for ($i = 0; $i < count($bid); $i++)
{
$id[] = $bid[$i]['id_satker'];
$kode[] = $bid[$i]['nama_satker'];
}
$tambahan = array(
'id' => implode($id, ","),
'kode' => implode($kode, "|"),
);
return $tambahan;
}
} }
<script src="http://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.10.0/js/bootstrap-datepicker.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.10.0/locales/bootstrap-datepicker.id.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.10.0/css/bootstrap-datepicker.css" rel="stylesheet"/>
<style type="text/css"> <style type="text/css">
.ui-jqgrid tr.jqgrow td { .ui-jqgrid tr.jqgrow td {
word-wrap: break-word; /* IE 5.5+ and CSS3 */ word-wrap: break-word; /* IE 5.5+ and CSS3 */
...@@ -55,15 +60,16 @@ ...@@ -55,15 +60,16 @@
</div> </div>
<ul class="nav nav-tabs" id="myTab" style="margin-bottom:5px"> <ul class="nav nav-tabs" id="myTab" style="margin-bottom:5px">
<li class="active"><a href="#tim">PKPT</a></li> <li class="active"><a href="#tim">Rincian PKPT</a></li>
</ul> </ul>
<div class="tab-content" style="height:295px"> <div class="tab-content" style="height:400px">
<div class="tab-pane active" id="tim"> <div class="tab-pane active" id="tim">
<table id="grd_tim"></table> <table id="grd_pkpt"></table>
<div id="pgr_tim"></div> <div id="pgr_pkpt"></div>
</div> </div>
</div> </div>
<div class="bottom-bar"> <div class="bottom-bar">
<button type="button" class="btn btn-primary" data-bind="enable: canSave() && !processing(), click: function(data, event){save(false, data, event) }" />Simpan</button> <button type="button" class="btn btn-primary" data-bind="enable: canSave() && !processing(), click: function(data, event){save(false, data, event) }" />Simpan</button>
...@@ -73,678 +79,540 @@ ...@@ -73,678 +79,540 @@
</form> </form>
<script> <script>
var idp = lastp = idtgl = lastgl = 0, var akses = <?php echo $akses; ?>,
last = 0, purge = [];
akses = <?php echo $akses; ?>, multivalue = [];
purge_tembusan = [], var id = last_pkpt = 0;
purge = [];
purge_tanggal = []; $(document).ready(function() {
$(document).ready(function() {
$.datepicker.setDefaults($.datepicker.regional['id']);
$.datepicker.setDefaults($.datepicker.regional['id']);
inisialisasi();
$('#myTab a').click(function(e) {
e.preventDefault();
$(this).tab('show');
})
$("#grd_tim").jqGrid({
url: '',
datatype: 'local',
mtype: 'POST',
colNames: ['', '', '', '<b>Objek Pemeriksaan</b>', '<b>Pengampu</b>', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', 'I', 'II', 'III', 'IV', ''],
colModel: [
{name:'id_rinci', hidden:true, editable:true, key:true},
{name:'idobj', hidden:true, editable:true},
{name:'id_parent', hidden:true, editable:true},
{name:'objek_pemeriksaan', width:120, sortable:false, editable:true, editoptions:{dataInit:initselect2}},
{name:'pengampu', width:80, sortable:false, editable:true},
{name:'jan_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jan_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jan_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jan_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'feb_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'feb_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'feb_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'feb_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'mar_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'mar_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'mar_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'mar_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'apr_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'apr_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'apr_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'apr_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'mei_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'mei_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'mei_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'mei_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jun_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jun_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jun_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jun_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jul_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jul_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jul_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'jul_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'ags_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'ags_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'ags_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'ags_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'sep_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'sep_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'sep_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'sep_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'okt_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'okt_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'okt_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'okt_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'nov_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'nov_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'nov_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'nov_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'des_1', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'des_2', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'des_3', width:25, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'des_4', width:20, editable: true, edittype:'checkbox', formatter:'checkbox', editoptions:{value:'1:0'}, formatoptions:{disabled:false}, align:'center', sortable:false, class:'check-row'},
{name:'level', hidden:true, editable:true}, inisialisasi();
],
pager: '#pgr_tim', $('#myTab a').click(function(e) {
rowNum: 1000, e.preventDefault();
scroll: true, $(this).tab('show');
rownumbers: true, })
viewrecords: true,
gridview: true, $("#grd_pkpt").jqGrid({
shrinkToFit: false, url: '',
loadonce: true, datatype: 'local',
autowidth: true, mtype: 'POST',
//width: '1015', colNames: ['', '', '<b>BULAN</b>', '', '', '', '<b>PIC</b>', '<b>URAIAN</b>', '<b>AUDITI/OPD</b>', '<b>TANGGAL</b>'],
height: '200', colModel: [
recordtext: '{2} baris', {name:'id_rinci', hidden:true, editable:true, key:true},
rowattr: gridRowAttr3, {name:'id_bulan', hidden:true, editable:true},
loadComplete: function() { {name:'nama_bulan', width:120, sortable:false, editable:false},
//if(App.id() > 0) {name:'lvl', hidden:true, editable:true},
App.onChange(); {name:'id_tim_pengawasan', hidden:true, editable:true},
}, {name:'idskpd', hidden:true, editable:true},
onSelectRow: function(id) { {name:'objek_pemeriksaan', width:200, sortable:false, editable:true, editoptions:{dataInit:initselect2}},
if (id && id !== last) { {name:'uraian', width:250, sortable:false, editable:true},
$(this).restoreRow(last); {name:'skpd', width:200, sortable:false, editable:true, editoptions:{dataInit:initselect2satker}},
last = id; {name:'tanggal', width:200, sortable:false, editable:true,
} editoptions:{size:100,dataInit: function(element) {
}, const id_bulan = $("[name^='id_bulan']").val();
ondblClickRow: dblClickaudit, if(id_bulan == 4 || id_bulan == 6 || id_bulan == 9 || id_bulan == 11)
}); tanggalAkhir = 30;
/* .contextMenu({ else if (id_bulan == 2){
selector: ".jqgrow", if (id_bulan%4 == 0)
build: function ($trigger, e) { {
// this callback is executed every time the menu is to be shown if (id_bulan%100 == 0) {
// its results are destroyed every time the menu is hidden if (id_bulan%400 == 0)
// e is the original contextmenu event tanggalAkhir = 29;
var $tr = $(e.target).closest("tr.jqgrow"), else
rowid = $tr.attr("id"), tanggalAkhir = 28;
item = $("#grd_tim").jqGrid("getRowData", rowid); }
return { else
callback: function (key, options) { tanggalAkhir = 29;
if(key=='copy')
jadikan_uraian(rowid);
else if(key=='edit')
jadikan_sub_uraian(rowid);
else if(key=='edit2')
jadikan_sub2_uraian(rowid);
else if(key=='cut')
kosongkan_ra(rowid);
},
items: {
copy: {name: "Jadikan Uraian"},
edit: {name: "Jadikan Sub Uraian"},
edit2: {name: "Jadikan Sub Sub Uraian"},
cut : {name: "Kosongkan Baris"}
} }
}; else
} tanggalAkhir = 28;
}); */ }
$("#grd_tim").jqGrid('navGrid', '#pgr_tim', { else
add: App.canEdit(), tanggalAkhir = 31;
addtext: 'Tambah Pemeriksaan',
addfunc: add_row,
edit: App.canEdit(),
edittext: 'Ubah',
editfunc:edit_row,
del: App.canEdit(),
deltext: 'Hapus',
delfunc:del_row,
refresh: true,
refreshtext: 'Refresh',
search: false,
}, {}, {}, {}, {});
$("#grd_tim").jqGrid("setGroupHeaders", {
useColSpanStyle: true,
groupHeaders: [
{startColumnName: "jan_1", numberOfColumns: 4, titleText:'<center><b>Jan</b></center>'},
{startColumnName: "feb_1", numberOfColumns: 4, titleText:'<center><b>Feb</b></center>'},
{startColumnName: "mar_1", numberOfColumns: 4, titleText:'<center><b>Mar</b></center>'},
{startColumnName: "apr_1", numberOfColumns: 4, titleText:'<center><b>Apr</b></center>'},
{startColumnName: "mei_1", numberOfColumns: 4, titleText:'<center><b>Mei</b></center>'},
{startColumnName: "jun_1", numberOfColumns: 4, titleText:'<center><b>Jun</b></center>'},
{startColumnName: "jul_1", numberOfColumns: 4, titleText:'<center><b>Jul</b></center>'},
{startColumnName: "ags_1", numberOfColumns: 4, titleText:'<center><b>Ags</b></center>'},
{startColumnName: "sep_1", numberOfColumns: 4, titleText:'<center><b>Sep</b></center>'},
{startColumnName: "okt_1", numberOfColumns: 4, titleText:'<center><b>Okt</b></center>'},
{startColumnName: "nov_1", numberOfColumns: 4, titleText:'<center><b>Nov</b></center>'},
{startColumnName: "des_1", numberOfColumns: 4, titleText:'<center><b>Des</b></center>'},
]
});
$("#grd_tim").jqGrid().navSeparatorAdd('#pgr_tim').navButtonAdd('#pgr_tim',{
caption:'Tambah ObRik',
onClickButton: function(){
var curid = $(this).jqGrid('getGridParam','selrow'),
row = $(this).jqGrid('getRowData', curid);
if (!curid || row.objek_pemeriksaan == ""){
show_warning('Untuk menambah ObRik silahkan pilih Pemeriksaan terlebih dahulu');
return;
}
var id_parent = row.id_parent.length > 0?row.id_parent : curid; $(element).datepicker({
autoclose: true,
newid = 'new_' + parseFloat((new Date().getTime() + '').slice(7))+ Math.round(Math.random() * 100); daysOfWeekDisabled : '0,6',
var defdata = {id_rinci: newid, id_parent: id_parent, level: 0, pengampu: ''}; language: "id",
locale:'id',
var editparam = { format:'dd/mm/yyyy',maxViewMode: 0,
keys : true, multidate: true,
aftersavefunc: after_save, startDate: new Date(App.tahun(), (id_bulan-1), 1),
beforeSaveRow: before_save, endDate: new Date(App.tahun(), (id_bulan-1), tanggalAkhir),
afterrestorefunc: after_restore, })
oneditfunc: onEditaudit, }},
//successfunc: successfunc, editrules:{required:false, integer:false},
//errorfunc: errorfunc, },
restoreAfterError: false, ],
} pager: '#pgr_pkpt',
rowNum:1000000,
$(this).jqGrid('addRowData', newid, defdata, 'after', curid); scroll:true,
//$("#"+newid).addClass("jqgrid-new-row"); rownumbers:false,
//$(this).jqGrid('editRow', newid, editparam); viewrecords:true,
//$(this).jqGrid('setSelection', newid); gridview:true,
}, shrinkToFit:false,
title:'Tambah ObRik', autowidth:true,
buttonicon:'ui-icon-plus', height: '330',
position:'last' recordtext: '{2} baris',
}); rowattr: gridRowAttr,
onSelectRow: function(id) {
}); if (id && id !== last_pkpt) {
$(this).restoreRow(last_pkpt);
last_pkpt = id;
function initselect2(el){
var oid = el.id;
pos = oid.indexOf('_objek_pemeriksaan');
idx = oid.substring(0, pos);
data = $('#grd_tim').jqGrid('getRowData', idx);
if(data.level == 1){
$(el).select2({
ajax: {
url: "<?php echo base_url()?>pilih/jenis_pemeriksaan",
type: 'POST',
dataType: 'json',
quietMillis: 200,
data: function(term){
return {'q': term}
},
results: function(data) {
return {results: data.results}
},
},
placeholder: 'Pilih Jenis Pemeriksaan',
allowClear: true,
openOnEnter: false,
dropdownAutoWidth : true,
initSelection: function(element, callback){
var data = {'text': element.val()};
callback(data);
},
formatResult: formatPemeriksaan
});
$(el).on('change', function(e){
var ele = [
{id: "idobj", text: "objek_pemeriksaan"},
];
var idx = e.target.id;
// apply selection to grid element
$.each(ele, function(i, x){
var pos = idx.indexOf(x.text);
if ( pos > -1){
var pre = idx.substring(0, pos);
$('#'+pre+x.id).val(e.added ? e.added.id : null);
//$(e.target).val(e.added ? e.added.text : '');
$('#'+pre+x.text).val(e.added ? e.added.text : '');
return false;
}
});
e.stopPropagation();
});
$(el).on('select2-removed', function(e){
var ele = [
{id: "idobj", text: "objek_pemeriksaan"},
];
var idx = e.target.id;
// apply selection to grid element
$.each(ele, function(i, x){
var pos = idx.indexOf(x.text);
if ( pos > -1){
var pre = idx.substring(0, pos);
$('#'+pre+x.id).val(null);
return false;
}
});
e.stopPropagation();
});
$('#s2id_' + oid).on('keyup', function(e){
if (e.keyCode === 13) {
var ev = $.Event('keydown');
ev.keyCode= 13;
$(el).trigger(ev);
}
});
}
else{
$(el).select2({
ajax: {
url: "<?php echo base_url()?>pilih/satker",
type: 'POST',
dataType: 'json',
quietMillis: 200,
data: function(term){
return {'q': term}
},
results: function(data) {
return {results: data.results}
},
},
placeholder: 'Pilih Satuan Kerja',
allowClear: true,
openOnEnter: false,
dropdownAutoWidth : true,
initSelection: function(element, callback){
var data = {'text': element.val()};
callback(data);
},
formatResult: formatPemeriksaan
});
$(el).on('change', function(e){
var ele = [
{id: "idobj", text: "objek_pemeriksaan"},
];
var idx = e.target.id;
// apply selection to grid element
$.each(ele, function(i, x){
var pos = idx.indexOf(x.text);
if ( pos > -1){
var pre = idx.substring(0, pos);
$('#'+pre+x.id).val(e.added ? e.added.id : null);
//$(e.target).val(e.added ? e.added.text : '');
$('#'+pre+x.text).val(e.added ? e.added.text : '');
return false;
}
});
e.stopPropagation();
});
$(el).on('select2-removed', function(e){
var ele = [
{id: "idobj", text: "objek_pemeriksaan"},
];
var idx = e.target.id;
// apply selection to grid element
$.each(ele, function(i, x){
var pos = idx.indexOf(x.text);
if ( pos > -1){
var pre = idx.substring(0, pos);
$('#'+pre+x.id).val(null);
return false;
}
});
e.stopPropagation();
});
$('#s2id_' + oid).on('keyup', function(e){
if (e.keyCode === 13) {
var ev = $.Event('keydown');
ev.keyCode= 13;
$(el).trigger(ev);
}
});
} }
},
ondblClickRow:edit_row,
loadComplete: function(){
if(App.id() > 0) hide_child(0, true);
} }
});
formatPemeriksaan = function(res){ $("#grd_pkpt").jqGrid('bindKeys', { "onEnter": edit_row});
return '<div>' + res.text + '</div>'; $("#grd_pkpt").jqGrid('navGrid', '#pgr_pkpt', {
add: App.canEdit(),
addtext: 'Tambah Pemeriksaan',
addfunc: add_row,
edit: App.canEdit(),
edittext: 'Ubah',
editfunc:edit_row,
del: App.canEdit(),
deltext: 'Hapus',
delfunc:del_row,
refresh: true,
refreshtext: 'Refresh',
search: false,
}, {}, {}, {}, {});
function gridRowAttr(rd){
switch (rd.lvl){
case 1 : return {"class": "row-level row-level-1"}; break;
case 2 : return {"class": "row-level row-level-2"}; break;
case 0 : return {"class": "row-level-0"}; break;
} }
}
function add_row() {
if (!App.canEdit()) return; $(this).on('click', '.row-level-1', prnt);
newid = 'new_' + parseFloat((new Date().getTime() + '').slice(7))+ Math.round(Math.random() * 100);
function prnt(e){
$("#grd_tim").jqGrid('addRowData', newid, {id_rinci: newid, level: 1}, 'last'); var id = $(e.currentTarget).attr('id');
$('#'+newid).addClass('row-bold row-level row-level-1'); hide_child(id,false);
setCell_(newid); }
};
function hide_child(id, load) {
function dblClickaudit(id, irow, icol, e) { if(load == true){
e.stopPropagation(); $(".row-level-0",$("#grd_pkpt")).hide();
edit_row.call(this, id);
} }
else{
function edit_row(id) { var sumber = $("#grd_pkpt").jqGrid('getRowData'), //all data
if (!App.canEdit()) return; rowData = $.grep(sumber, function(e) {return e.lvl == 0}), //data level 0
var row = $("#grd_tim").jqGrid('getRowData', id); id3 = id;
if(row.level > 0)
$("#grd_tim").jqGrid('setColProp', 'pengampu', {editable: false});
else
$("#grd_tim").jqGrid('setColProp', 'pengampu', {editable: true});
editparam = { var data = $("#grd_pkpt").jqGrid('getRowData',id); //data level 1 yang di select
keys: true, rowData2 = $.grep(rowData, function(e) { //data level 0, sesuai bulan
url: 'clientArray', return e.id_bulan == data.id_bulan;
aftersavefunc: after_save, });
beforeSaveRow: before_save, for (var i=0; i<rowData2.length; i++){
oneditfunc: onEditaudit, $('#'+rowData2[i].id_rinci).toggle(); // hidden child
afterrestorefunc: after_restore,
restoreAfterError: false,
} }
$(this).jqGrid('saveRow', last, null, 'clientArray', null, after_save);
$(this).jqGrid('editRow', id, editparam);
last = id;
};
function after_save() {
$(this).focus();
} }
}
function add_row() {
if (!App.canEdit()) return;
function onEditaudit(id) { var curid = $(this).jqGrid('getGridParam','selrow'),
$('#' + id + '_objek_pemeriksaan').focus(); row = $(this).jqGrid('getRowData', curid);
}
function before_save(opt, id) {
/* remove select2 */
$('#'+id+'_objek_pemeriksaan').select2('destroy');
//setCell_(id);
}
function after_restore() { if (!curid || row.id_bulan == ""){
$(this).focus(); show_warning('Untuk menambah data silahkan pilih Bulan terlebih dahulu');
return;
} }
function del_row(id) { newid = 'new_' + parseFloat((new Date().getTime() + '').slice(7))+ Math.round(Math.random() * 100);
if (!App.canEdit()) return; var t = this;
rs = $('#grd_tim').jqGrid('getRowData', id);
if(rs.level == 1){
data = $('#grd_tim').jqGrid('getRowData');
found = $.grep(data, function(e){
return (e.id_parent == rs.id_rinci);
});
if (found.length) {show_warning('Pemeriksaan masih mempunyai ObRik'); return false;}
}
var grid = $("#grd_tim")
question = 'Hapus ObRik dari daftar ?';
confirmation(question).then(function(answer) {
if (!answer) return;
purge.push(id);
grid.jqGrid('delRowData', id);
});
};
function jadikan_uraian(id){ editparam = {
$('#'+id).addClass('row-bold row-level row-level-1'); keys: true,
$("#grd_tim").jqGrid('setRowData', id, {level: 1}); url: 'clientArray',
setCell_(id); aftersavefunc: function(id){$(this).focus();},
beforeSaveRow: before_save,
//oneditfunc: onEditaudit,
afterrestorefunc: after_restore,
restoreAfterError: false,
} }
const data = {id_rinci: newid, id_bulan: row.id_bulan, lvl : 0};
$(this).jqGrid('addRowData', newid, data, 'after', curid);
$("#"+newid).addClass("jqgrid-new-row");
$(this).jqGrid('editRow', newid, editparam);
$(this).jqGrid('setSelection', newid);
function jadikan_sub_uraian(id){ };
$('#'+id).addClass('row-bold row-level row-level-2');
$("#grd_tim").jqGrid('setRowData', id, {level: 2}); function edit_row(id) {
setCell_(id); if (!App.canEdit()) return;
} var row = $(this).jqGrid('getRowData', id);
function jadikan_sub2_uraian(id){ if(row.lvl == 1) return;
$('#'+id).addClass('row-bold row-level row-level-3');
$("#grd_tim").jqGrid('setRowData', id, {level: 3}); editparam = {
setCell_(id); keys: true,
url: 'clientArray',
aftersavefunc: function(id){$(this).focus();},
beforeSaveRow: before_save,
//oneditfunc: onEditaudit,
afterrestorefunc: after_restore,
restoreAfterError: false,
} }
function setCell_(id){ //$(this).jqGrid('saveRow', last_pkpt, null, 'clientArray', null, $(this).focus());
$("#grd_tim").jqGrid("setCell",id, "jan_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); $(this).jqGrid('editRow', id, editparam);
$("#grd_tim").jqGrid("setCell",id, "jan_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); //$(this).jqGrid('setSelection', id);
$("#grd_tim").jqGrid("setCell",id, "jan_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); last_pkpt = id;
$("#grd_tim").jqGrid("setCell",id, "jan_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); };
$("#grd_tim").jqGrid("setCell",id, "feb_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "feb_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); function onEditaudit(id) {
$("#grd_tim").jqGrid("setCell",id, "feb_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); $('#' + id + '_objek_pemeriksaan').focus();
$("#grd_tim").jqGrid("setCell",id, "feb_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); }
$("#grd_tim").jqGrid("setCell",id, "mar_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "mar_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); function before_save(opt, id) {
$("#grd_tim").jqGrid("setCell",id, "mar_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); tim = $('#' + id + '_objek_pemeriksaan').val();
$("#grd_tim").jqGrid("setCell",id, "mar_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); tanggal = $('#' + id + '_tanggal').val();
$("#grd_tim").jqGrid("setCell",id, "apr_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); uraian = $('#' + id + '_uraian').val();
$("#grd_tim").jqGrid("setCell",id, "apr_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "apr_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); // cek semua kolom sudah diisi
$("#grd_tim").jqGrid("setCell",id, "apr_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); if (tim == '' || tanggal == '' || uraian == '') {
$("#grd_tim").jqGrid("setCell",id, "mei_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); show_warning('Silahkan melengkapi semua isian.');
$("#grd_tim").jqGrid("setCell",id, "mei_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents"); return false;
$("#grd_tim").jqGrid("setCell",id, "mei_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "mei_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "jun_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "jun_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "jun_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "jun_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "jul_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "jul_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "jul_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "jul_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "ags_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "ags_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "ags_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "ags_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "sep_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "sep_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "sep_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "sep_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "okt_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "okt_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "okt_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "okt_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "nov_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "nov_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "nov_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "nov_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "des_1", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "des_2", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "des_3", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
$("#grd_tim").jqGrid("setCell",id, "des_4", "", "ui-state-disabled ui-jqgrid-disablePointerEvents");
} }
function kosongkan_ra(id){ // remove select2
newdata = {objek_pemeriksaan:'', pengampu:'', level:0}; $('#'+id+'_skpd').select2('destroy');
$("#grd_tim").jqGrid('setRowData', id, newdata); $('#'+id+'_objek_pemeriksaan').select2('destroy');
$('.ui-state-disabled').removeClass('ui-state-disabled');
$('.ui-jqgrid-disablePointerEvents').removeClass('ui-jqgrid-disablePointerEvents');
}
function gridRowAttr3(rek) { var arrid = []; arrtext = [];
var lvl = parseInt(rek.level); $.each(multivalue, function(i, x){
switch (lvl){ arrid[i] = x.id;
case 1 : return {"class": "row-level row-level-1"}; break; arrtext[i] = x.text;
case 2 : return {"class": "row-level row-level-2"}; break; });
case 3 : return {"class": "row-level row-level-3"}; break; $('#'+id+'_idskpd').val(arrid.join(","));
case 0 : return {"class": "row-level-0"}; break; $('#'+id+'_skpd').val(arrtext.join("|"));
default : return ''; multivalue = [];
} //setCell_(id);
} }
ko.validation.init({ function after_restore() {
insertMessages: false, $(this).focus();
decorateElement: true, }
errorElementClass: 'error',
function del_row(id) {
if (!App.canEdit()) return;
rs = $(this).jqGrid('getRowData', id);
var grid = $(this)
question = 'Hapus data dari daftar ?';
confirmation(question).then(function(answer) {
if (!answer) return;
purge.push(id);
grid.jqGrid('delRowData', id);
}); });
};
function add_arr(arr, val){
var exist = arr.map(function(e) { return e.id; }).indexOf(val.id);
if (exist < 0){
arr.push(val);
}
}
var ModelUnitKerja = function() { function remove_arr(arr, val){
var self = this; var exist = arr.map(function(e) { return e.id; }).indexOf(val.id);
self.modul_display = '<?php echo $modul_display ?>'; if (exist >= 0){
self.processing = ko.observable(false); arr.splice(exist, 1);
self.akses_level = ko.observable(<?php echo isset($akses) ? $akses : 0 ?>); }
self.id = ko.observable(<?php echo isset($data['id_pkpt']) ? $data['id_pkpt'] : 0 ?>); }
self.nomor = ko.observable(<?php echo isset($data['nomor']) ? json_encode($data['nomor']) : '' ?>)
.extend({ function initselect2satker(el){
required: { var oid = el.id;
params: true, var xx = el.id.substring(0, el.id.indexOf('skpd'));
message: 'Nomor tidak boleh kosong' var xxx = $('#'+xx+'idskpd').val();
} $(el).select2({
}); minimumInputLength: 0,
self.tanggal = ko.observable('<?php echo isset($data['tanggal']) ? format_date($data['tanggal']) : date('d/m/Y') ?>') //maximumSelectionSize: 2,
.extend({ ajax: {
required: { url: "<?php echo base_url()?>pilih/satker",
params: true, type: 'POST',
message: 'Tanggal tidak boleh kosong' dataType: 'json',
} quietMillis: 200,
}); data: function(term){
self.tahun = ko.observable('<?php echo isset($data['tahun']) ? $data['tahun'] : date('Y') ?>') return {'q': term}
.extend({ },
required: { results: function(data) {
params: true, var skpds = $.grep(data.results, function(val){
message: 'Tahun tidak boleh kosong' return val.id != xxx;
} });
return {results: skpds}
},
},
placeholder: 'Pilih Satuan Kerja',
multiple: true,
allowClear: true,
openOnEnter: false,
dropdownAutoWidth : true,
initSelection: function(element, callback){
var data = [];
multivalue = [];
var pre = element[0].id.substring(0, element[0].id.indexOf('skpd'));
var elid = $('#'+pre+'idskpd');
var teks = element.val();
element.val(elid.val());
var id = elid.val().split(",");
if (!teks) return;
$(teks.split('|')).each(function(i, x){
data.push({id:id[i], text:x});
}); });
multivalue = data;
self.mode = ko.computed(function() { callback(data);
return self.id() > 0 ? 'edit' : 'new'; },
});
$(el).on('change', function(e){
var elem = e.target;
var pre = elem.id.substring(0, elem.id.indexOf('skpd'))
var elid = $('#'+pre+'idskpdidt');
if (e.added){
//multivalue.push({ id:e.added.id, text:e.added.text });
add_arr(multivalue, { id:e.added.id, text:e.added.text });
}
if (e.removed){
remove_arr(multivalue, { id:e.removed.id, text:e.removed.text });
}
});
$('#s2id_' + oid).on('keyup', function(e){
if (e.keyCode === 13) {
var ev = $.Event('keydown');
ev.keyCode= 13;
$(el).trigger(ev);
}
});
}
function initselect2(el){
var oid = el.id;
pos = oid.indexOf('_objek_pemeriksaan');
idx = oid.substring(0, pos);
data = $(this).jqGrid('getRowData', idx);
$(el).select2({
ajax: {
url: "<?php echo base_url()?>pilih/tim_pengawasan",
type: 'POST',
dataType: 'json',
quietMillis: 200,
data: function(term){
return {'q': term}
},
results: function(data) {
return {results: data.results}
},
},
placeholder: 'Pilih Tim Pengawasan',
allowClear: true,
openOnEnter: false,
dropdownAutoWidth : true,
initSelection: function(element, callback){
var data = {'text': element.val()};
callback(data);
},
formatResult: formatPemeriksaan
});
$(el).on('change', function(e){
var ele = [
{id: "id_tim_pengawasan", text: "objek_pemeriksaan"},
];
var idx = e.target.id;
// apply selection to grid element
$.each(ele, function(i, x){
var pos = idx.indexOf(x.text);
if ( pos > -1){
var pre = idx.substring(0, pos);
$('#'+pre+x.id).val(e.added ? e.added.id : null);
//$(e.target).val(e.added ? e.added.text : '');
$('#'+pre+x.text).val(e.added ? e.added.text : '');
return false;
}
}); });
e.stopPropagation();
self.title = ko.computed(function() { });
return (self.mode() === 'edit' ? 'Edit ' : 'Entri ') + self.modul_display; $(el).on('select2-removed', function(e){
var ele = [
{id: "id_tim_pengawasan", text: "objek_pemeriksaan"},
];
var idx = e.target.id;
// apply selection to grid element
$.each(ele, function(i, x){
var pos = idx.indexOf(x.text);
if ( pos > -1){
var pre = idx.substring(0, pos);
$('#'+pre+x.id).val(null);
return false;
}
}); });
e.stopPropagation();
});
$('#s2id_' + oid).on('keyup', function(e){
if (e.keyCode === 13) {
var ev = $.Event('keydown');
ev.keyCode= 13;
$(el).trigger(ev);
}
});
}
formatPemeriksaan = function(res){
return '<div>' + res.text + '</div>';
}
});
ko.validation.init({
insertMessages: false,
decorateElement: true,
errorElementClass: 'error',
});
var ModelUnitKerja = function() {
var self = this;
self.modul_display = '<?php echo $modul_display ?>';
self.processing = ko.observable(false);
self.akses_level = ko.observable(<?php echo isset($akses) ? $akses : 0 ?>);
self.id = ko.observable(<?php echo isset($data['id_pkpt']) ? $data['id_pkpt'] : 0 ?>);
self.nomor = ko.observable(<?php echo isset($data['nomor']) ? json_encode($data['nomor']) : '' ?>)
.extend({
required: {
params: true,
message: 'Nomor tidak boleh kosong'
}
});
self.tanggal = ko.observable('<?php echo isset($data['tanggal']) ? format_date($data['tanggal']) : date('d/m/Y') ?>')
.extend({
required: {
params: true,
message: 'Tanggal tidak boleh kosong'
}
});
self.tahun = ko.observable('<?php echo isset($data['tahun']) ? $data['tahun'] : date('Y') ?>')
.extend({
required: {
params: true,
message: 'Tahun tidak boleh kosong'
}
});
self.isEdit = ko.computed(function() { self.mode = ko.computed(function() {
return self.mode() === 'edit'; return self.id() > 0 ? 'edit' : 'new';
}); });
self.canEdit = ko.computed(function() { self.title = ko.computed(function() {
return self.akses_level() >= 3; return (self.mode() === 'edit' ? 'Edit ' : 'Entri ') + self.modul_display;
}); });
self.canPrint = ko.computed(function() {
return self.akses_level() >= 2 && self.mode() === 'edit';
});
self.canSave = ko.computed(function() { self.isEdit = ko.computed(function() {
return self.akses_level() >= 3; return self.mode() === 'edit';
}); });
self.errors = ko.validation.group(self); self.canEdit = ko.computed(function() {
return self.akses_level() >= 3;
});
self.canPrint = ko.computed(function() {
return self.akses_level() >= 2 && self.mode() === 'edit';
});
} self.canSave = ko.computed(function() {
return self.akses_level() >= 3;
});
var App = new ModelUnitKerja(); self.errors = ko.validation.group(self);
App.onChange = function(){
var totalData = $('#grd_tim').jqGrid("getDataIDs");
for (i=0; i<totalData.length; i++)
{
da = $('#grd_tim').jqGrid('getRowData',totalData[i]);
if(da.level == 1)
setCell_(da.id_rinci);
}
}
App.back = function() {
location.href = root + modul;
}
App.formValidation = function() {
var errmsg = [],
grdpejabat = $('#grd_tim'),
grdrek = $('#grd_tim');
// cek jika ada baris di grid belum disimpan
if (!App.isValid()) {
errmsg.push('Ada kolom yang belum diisi dengan benar. Silakan diperbaiki.');
App.errors.showAllMessages();
}
checkGridRow(grdrek, 'id_audit', after_save);
if (grdrek.jqGrid('getGridParam', 'reccount') === 0) {
errmsg.push('Belum ada rincian yang di entri.');
}
if (errmsg.length > 0) { }
message = errmsg.join('</br>');
show_warning(message, 'Perhatian');
return false;
}
return true;
}
App.print = function() {
preview({
"tipe": "form",
"id": App.id()
});
}
App.save = function() {
if (!App.formValidation()) {
return
}
var $frm = $('#frm'), var App = new ModelUnitKerja();
data = JSON.parse(ko.toJSON(App));
data['tim'] = JSON.stringify($('#grd_tim').jqGrid('getRowData')); App.back = function() {
data['purge'] = purge; location.href = root + modul;
}
App.formValidation = function() {
var errmsg = [];
// cek jika ada baris di grid belum disimpan
if (!App.isValid()) {
errmsg.push('Ada kolom yang belum diisi dengan benar. Silakan diperbaiki.');
App.errors.showAllMessages();
}
if (errmsg.length > 0) {
message = errmsg.join('</br>');
show_warning(message, 'Perhatian');
return false;
}
return true;
}
App.print = function() {
preview({
"tipe": "form",
"id": App.id()
});
}
App.save = function() {
if (!App.formValidation()) {
return
}
var $frm = $('#frm'),
data = JSON.parse(ko.toJSON(App));
data_rinci = $('#grd_pkpt').jqGrid('getRowData'),
rincian = $.grep(data_rinci, function(e){ return parseInt(e.lvl) == 0 });
data['pkpt'] = JSON.stringify(rincian);
data['purge'] = purge;
App.processing(true);
$.ajax({
url: $frm.attr('action'),
type: 'post',
dataType: 'json',
data: data,
success: function(res, xhr) {
if (res.isSuccess) {
if (res.id) App.id(res.id);
App.init_grid();
}
App.processing(true); if (res.isSuccess) show_info(res.message, 'Sukses');
$.ajax({ else show_error(res.message, 'Gagal');
url: $frm.attr('action'), },
type: 'post', complete: function() {
dataType: 'json', App.processing(false);
data: data,
success: function(res, xhr) {
if (res.isSuccess) {
if (res.id) App.id(res.id);
App.init_grid();
}
if (res.isSuccess) show_info(res.message, 'Sukses');
else show_error(res.message, 'Gagal');
},
complete: function() {
App.processing(false);
}
});
} }
});
}
App.init_grid = function() { App.init_grid = function() {
var grd_tim = $('#grd_tim'); var grd_pkpt = $('#grd_pkpt');
if (App.id() > 0) { grd_pkpt.jqGrid('setGridParam', {'url': '<?php echo base_url($modul); ?>/get_rincian_pkpt/' + App.id(),'datatype': 'json'});
grd_tim.jqGrid('setGridParam', {'url': '<?php echo base_url($modul); ?>/rinci/' + App.id(),'datatype': 'json'}); grd_pkpt.trigger('reloadGrid');
grd_tim.trigger('reloadGrid'); }
}
else
{
grd_tim.jqGrid('setGridParam', {'url': '', 'datatype': 'local'});
}
}
ko.applyBindings(App); ko.applyBindings(App);
setTimeout(function() { setTimeout(function() {
App.init_grid(); App.init_grid();
}, 500) }, 500)
</script> </script>
\ No newline at end of file \ No newline at end of file
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
</div><!-- /.container-fluid --> </div><!-- /.container-fluid -->
</div> </div>
<!-- /.content-header --> <!-- /.content-header -->
<!-- Main content --> <!-- Main content -->
<section class="content"> <section class="content">
<div class="container-fluid"> <div class="container-fluid">
......
<?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
<?php
class Tim_pengawasan_model extends Base_Model
{
var $fields;
var $fields_tim;
var $fields_pejabat;
var $fieldmap_filter;
var $fieldmap_pejabat;
var $fieldmap_tim_pengawasan;
var $fieldmap_tim_pengawasan_rinci;
var $data_tim_pengawasan;
var $data_tim_pengawasan_rinci;
var $data_tim_pengawasan_pejabat;
var $purge_tim;
var $purge_pejabat;
function __construct()
{
parent::__construct();
$this->fields = array(
'id_tim_pengawasan',
'nama_inspektur',
'aktif'
);
$this->fieldmap_filter = array(
'nama_inspektur' => 'a.nama_inspektur',
'aktif' => 'a.aktif',
);
$this->fieldmap_tim_pengawasan = array(
'id' => 'id_tim_pengawasan',
'nama_inspektur' => 'nama_inspektur',
'aktif' => 'aktif',
);
$this->fields_tim = array(
'id_tim_pengawasan_rinci' => 'id_tim_pengawasan_rinci',
'id_tim_pengawasan' => 'id_tim_pengawasan',
'nama_tim' => 'nama_tim',
'no_urut' => 'no_urut',
'aktif' => 'aktif'
);
$this->fields_pejabat = array(
'id_tim_pengawasan_pejabat' => 'id_tim_pengawasan_pejabat',
'id_tim_pengawasan_rinci' => 'id_tim_pengawasan_rinci',
'id_pejabat_spi' => 'id_pejabat_spi',
'id_jab_tim_audit' => 'id_jab_tim_audit',
'no_urut' => 'no_urut'
);
}
function fill_data()
{
$this->purge_tim = $this->input->post('purge_tim'); $this->purge_tim = $this->purge_tim ? $this->purge_tim : NULL;
$this->purge_pejabat = $this->input->post('purge_pejabat'); $this->purge_pejabat = $this->purge_pejabat ? $this->purge_pejabat : NULL;
foreach($this->fieldmap_tim_pengawasan as $key => $value){
switch ($key){
default : $$key = $this->input->post($key) ? $this->input->post($key) : NULL;
}
if(isset($$key))
$this->data_tim_pengawasan[$value] = $$key;
}
/* ambil grid rincian_tim */
$rincian_tim = $this->input->post('rincian_tim') ? $this->input->post('rincian_tim') : NULL;
if ($rincian_tim){
$rincian_tim = json_decode($rincian_tim);
for ($i=0; $i < count($rincian_tim); $i++) {
foreach($this->fields_tim as $key => $value){
switch ($key)
{
default : $$key = isset($rincian_tim[$i]->$key) && $rincian_tim[$i]->$key ? $rincian_tim[$i]->$key : NULL;
}
if(isset($$key))
$this->data_tim_pengawasan_rinci[$i][$value] = $$key;
}
}
}
/* ambil grid rincian_pejabat */
$rincian_pejabat = $this->input->post('rincian_pejabat') ? $this->input->post('rincian_pejabat') : NULL;
if ($rincian_pejabat){
$rincian_pejabat = json_decode($rincian_pejabat);
for ($i=0; $i < count($rincian_pejabat); $i++) {
foreach($this->fields_pejabat as $key => $value){
switch ($key)
{
default : $$key = isset($rincian_pejabat[$i]->$key) && $rincian_pejabat[$i]->$key ? $rincian_pejabat[$i]->$key : NULL;
}
if(isset($$key))
$this->data_tim_pengawasan_pejabat[$i][$value] = $$key;
}
}
}
}
// ----- search advance ---- >>
function get_data_fields()
{
$fields = array(
'nama_tim' => array('name' => 'Nama Tim', 'kategori'=>'string')
);
return $fields;
}
function save_detail()
{
$this->insert_tim_pengawasan();
$this->insert_rincian_tim();
}
function insert_tim_pengawasan()
{
if(isset($this->data_tim_pengawasan['id_tim_pengawasan']))
{
$this->db->where('id_tim_pengawasan',$this->input->post('id'));
$this->db->update('tim_pengawasan', $this->data_tim_pengawasan);
$this->check_trans_status('update tim_pengawasan failed');
$this->id = $this->data_tim_pengawasan['id_tim_pengawasan'];
}
else
{
$this->db->insert('tim_pengawasan', $this->data_tim_pengawasan);
$this->check_trans_status('insert tim_pengawasan failed');
$this->db->select_max('id_tim_pengawasan')->from('tim_pengawasan');
$res = $this->db->get()->row_array();
$idfa = $res['id_tim_pengawasan'];
$this->id = $idfa;
}
}
function insert_rincian_tim()
{
if ($this->purge_tim)
{
if($this->input->post('id') > 0){
$this->db->where_in('id_tim_pengawasan_rinci', $this->purge_tim);
$this->db->delete('tim_pengawasan_rinci');
$this->check_trans_status('delete tim_pengawasan_rinci failed');
}
}
for ($i=0; $i<count($this->data_tim_pengawasan_rinci); $i++)
{
if(isset($this->data_tim_pengawasan_rinci[$i]['id_tim_pengawasan_rinci'])){
$idrbm = isset($this->data_tim_pengawasan_rinci[$i]['id_tim_pengawasan_rinci']) ? $this->data_tim_pengawasan_rinci[$i]['id_tim_pengawasan_rinci'] : NULL;
$temp = $idrbm;
$this->data_tim_pengawasan_rinci[$i]['no_urut'] = $i+1;
$this->db->select('id_tim_pengawasan_rinci')->from('tim_pengawasan_rinci')->where('id_tim_pengawasan', $this->id)->where('id_tim_pengawasan_rinci', $this->data_tim_pengawasan_rinci[$i]['id_tim_pengawasan_rinci']);
$rs = $this->db->get()->row_array();
if ($rs)
{
$this->db->where('id_tim_pengawasan_rinci', $rs['id_tim_pengawasan_rinci']);
$this->db->update('tim_pengawasan_rinci', $this->data_tim_pengawasan_rinci[$i]);
$this->check_trans_status('update tim_pengawasan_rinci failed');
$idmkr = $idrbm;
}
else
{
$temp = $this->data_tim_pengawasan_rinci[$i]['id_tim_pengawasan_rinci'];
unset($this->data_tim_pengawasan_rinci[$i]['id_tim_pengawasan_rinci']);
$this->data_tim_pengawasan_rinci[$i]['id_tim_pengawasan'] = $this->id;
$this->db->insert('tim_pengawasan_rinci', $this->data_tim_pengawasan_rinci[$i]);
$this->check_trans_status('insert tim_pengawasan_rinci failed');
$this->db->select_max('id_tim_pengawasan_rinci')->from('tim_pengawasan_rinci');
$res = $this->db->get()->row_array();
$idmkr = $res['id_tim_pengawasan_rinci'];
}
//pejabat
if($this->input->post('id') > 0){
if ($this->purge_tim)
{
$this->db->where_in('id_tim_pengawasan_rinci', $this->purge_tim);
$this->db->delete('tim_pengawasan_pejabat');
$this->check_trans_status('delete tim_pengawasan_pejabat failed');
}
}
for($x=0;$x<count($this->data_tim_pengawasan_pejabat);$x++){
if($this->data_tim_pengawasan_pejabat[$x]['id_tim_pengawasan_rinci'] == $temp){
$this->data_tim_pengawasan_pejabat[$x]['id_tim_pengawasan_rinci'] = $idmkr;
}
}
}
}
for($i=0;$i<count($this->data_tim_pengawasan_pejabat);$i++){
$this->data_tim_pengawasan_pejabat[$i]['no_urut'] = $i+1;
if($this->input->post('id') > 0){
if ($this->purge_pejabat)
{
$this->db->where_in('id_tim_pengawasan_pejabat', $this->purge_pejabat);
$this->db->delete('tim_pengawasan_pejabat');
$this->check_trans_status('delete tim_pengawasan_pejabat failed');
}
}
$this->db->select('id_tim_pengawasan_pejabat')->from('tim_pengawasan_pejabat')->where('id_tim_pengawasan_pejabat', $this->data_tim_pengawasan_pejabat[$i]['id_tim_pengawasan_pejabat']);
$rs = $this->db->get()->row_array();
if ($rs)
{
$this->db->where('id_tim_pengawasan_pejabat', $rs['id_tim_pengawasan_pejabat']);
$this->db->update('tim_pengawasan_pejabat', $this->data_tim_pengawasan_pejabat[$i]);
$this->check_trans_status('update tim_pengawasan_pejabat failed');
}
else
{
unset($this->data_tim_pengawasan_pejabat[$i]['id_tim_pengawasan_pejabat']);
$this->db->insert('tim_pengawasan_pejabat', $this->data_tim_pengawasan_pejabat[$i]);
$this->check_trans_status('insert tim_pengawasan_pejabat failed');
}
}
}
function get_data_by_id($id)
{
$this->build_query_form($id);
$result = $this->db->get()->row_array();
return $result;
}
/* query hapus */
function build_query_hapus($id=0)
{
//$this->db->where('id_tim_pengawasan', $id)->delete('tim_pengawasan_pejabat');
//$this->check_trans_status('delete tim_pengawasan_pejabat failed');
$this->db->where('id_tim_pengawasan', $id)->delete('tim_pengawasan_rinci');
$this->check_trans_status('delete tim_pengawasan_rinci failed');
$this->db->where('id_tim_pengawasan', $id)->delete('tim_pengawasan');
$this->check_trans_status('delete tim_pengawasan failed');
}
/* Query form */
function build_query_form($id=0)
{
$this->db->select('
a.id_tim_pengawasan,
a.nama_inspektur
');
$this->db->from('tim_pengawasan a');
$this->db->where('a.id_tim_pengawasan', $id);
}
/* Query daftar */
function build_query_daftar()
{
$this->db->select("a.id_tim_pengawasan, a.nama_inspektur");
$this->db->from("tim_pengawasan a");
}
function get_rincian_tim($id)
{
$this->db->select("a.id_tim_pengawasan_rinci, a.nama_tim, a.no_urut, a.aktif");
$this->db->from("tim_pengawasan_rinci a");
$this->db->order_by('a.no_urut');
$this->db->where("a.id_tim_pengawasan", $id);
$result = $this->db->get();
return $result->result_array();
}
function get_rincian_pejabat($id = 0)
{
$this->db->select("a.id_tim_pengawasan_pejabat, a.id_tim_pengawasan_rinci, c.id_jab_tim_audit, c.uraian, c.no_urut, b.id_pejabat_spi, b.nama, b.nip, b.jabatan");
$this->db->from("tim_pengawasan_pejabat a");
$this->db->join("ref_pejabat_spi b","b.id_pejabat_spi = a.id_pejabat_spi");
$this->db->join("ref_jab_tim_audit c","c.id_jab_tim_audit = a.id_jab_tim_audit");
$this->db->join("tim_pengawasan_rinci d","d.id_tim_pengawasan_rinci = a.id_tim_pengawasan_rinci");
$this->db->where("d.id_tim_pengawasan", $id);
$this->db->order_by('a.no_urut');
$result = $this->db->get();
return $result->result_array();
}
function check_duplikasi_tim()
{
$id = $this->input->post('id') ? $this->input->post('id') : 0;
$nama_inspektur = $this->input->post('nama_inspektur') ? $this->input->post('nama_inspektur') : NULL;
$this->db->select('count(a.nama_inspektur) dup')
->where('a.nama_inspektur', $nama_inspektur)
->where('a.id_tim_pengawasan <>', $id);
$rs = $this->db->get('tim_pengawasan a')->row_array();
if($rs['dup'] > 0)
{
return $rs;
}
else
{
return FALSE;
}
}
function check_dependency($id)
{
return TRUE;
}
}
\ No newline at end of file
<section class="content">
<div class="container-fluid">
<fieldset>
<legend id="bc" data-bind="text: title"></legend>
</fieldset>
<form id="frm" method="post" action="<?php echo base_url().$modul; ?>/proses">
<div class="controls-row" >
<div class="control-group" data-bind="validationElement: nama_inspektur" >
<label class="control-label" for="nama_inspektur">Nama Tim Pengawasan</label>
<input type="text" id="nama_inspektur" class="span8" data-bind="value: nama_inspektur"/>
</div>
</div>
</br>
<ul class="nav nav-tabs" id="tabs" style="margin-bottom:5px">
<li class="active"><a href="#tim">Tim</a></li>
</ul>
<div class="tab-content" style="height:300px">
<div class="tab-pane active" id="tim" >
<table id="grd_tim"></table>
<div id="pagertim"></div>
</div>
</div>
<div class="controls-row">
<div class="controls-row pull-right">
<input type="button" data-bind="enable: canSave() && !processing() , click: simpan" id="simpan_form" value="Simpan" class="btn btn-primary"/>
<input type="button" name="back" id="back" value="Kembali" class="btn btn-primary" data-bind="click: back"/>
</div>
</div>
</form>
<script type="text/javascript">
var grd_skpd = $('#gridSKPD'), grd_tim = $('#grd_tim'), last = id = 0, lastp = 0, idc = 0 ;
var purge_tim = [], purge_pejabat = [], sdrek = [];
$(document).ready(function() {
$('#tabs a').click(function(e) {
e.preventDefault();
$(this).tab('show');
})
$('#nama_inspektur').keypress(function(event) {
if (event.keyCode == 13)
{
event.preventDefault();
}
})
grd_tim.jqGrid({
url: '',
datatype: 'local',
mtype:'POST',
colNames:['', 'Nama Tim', 'Aktif'],
colModel:[
{name:'id_tim_pengawasan_rinci', hidden:true, key:true},
{name:'nama_tim', editable:true, width:200},
{name:'aktif', width:130, formatter:'select', edittype:'select', editable:true, editoptions:{value:{'Y':'Ya','T':'Tidak'}, style:'width:100px'}}
],
rowNum:1000000,
scroll:true,
pager:'#pagertim',
shrinkToFit:false,
viewrecords:true,
rownumbers:true,
gridview:true,
autowidth:true,
height:'220',
loadonce:true,
ondblClickRow: gridDoubleClick,
onSelectRow: function(id) {
if (id && id !== last) {
$(this).restoreRow(last);
last = id;
}
},
subGrid:true,
subGridBeforeExpand: subGridBeforeExpand,
subGridRowExpanded: subGridRowExpanded,
});
grd_tim.jqGrid('navGrid', '#pagertim', {
add:App.canSave(),
addfunc:add_tim,
addtext:'Tambah',
edit:App.canSave(),
editfunc:edit_row,
edittext:'Ubah',
del:App.canSave(),
deltext:'Hapus',
delfunc:del_row,
search:false,
refresh:false
});
function gridDoubleClick(id, irow, icol, e) {
e.stopPropagation();
edit_row.call(this, id);
}
function add_tim(){
if (!App.canSave()) return;
//newid = 'new_' + parseFloat((new Date().getTime() + '').slice(7))+ Math.round(Math.random() * 100);
newid = --idc;
editparam = {
keys : true,
url: 'clientArray',
aftersavefunc: after_save,
beforeSaveRow: beforesavefunc,
afterrestorefunc: afterrestorefunc,
oneditfunc: oneditfunc,
successfunc: null,
errorfunc: null,
restoreAfterError: false,
}
$(this).jqGrid('addRowData', newid, {}, 'last');
$("#"+newid).addClass("jqgrid-new-row");
$(this).jqGrid('editRow', newid, editparam);
$(this).jqGrid('setSelection', newid);
last = newid;
}
function edit_row(id){
if (!App.canSave()) return;
editparam = {
keys : true,
url: 'clientArray',
aftersavefunc: after_save,
beforeSaveRow: beforesavefunc,
afterrestorefunc: afterrestorefunc,
oneditfunc: oneditfunc,
successfunc: null,
errorfunc: null,
restoreAfterError: false,
}
grd_tim.jqGrid('editRow', id, editparam);
last = id;
return false;
};
function after_save(){
$(this).focus();
}
function beforesavefunc(opt, id){
var row = grd_tim.jqGrid('getRowData', id);
nama = $('#' + id + '_nama_tim').val();
aktif = $('#' + id + '_aktif').val();
// cek semua kolom sudah diisi
if (nama == '') {
show_warning('Silahkan melengkapi semua isian.');
return false;
}
data = grd_tim.jqGrid('getRowData');
found = $.grep(data, function(e) {
return (e.nama == nama && e.aktif == aktif );
});
if (found.length) {
show_warning('Nama Tim sudah ada');
return false;
}
}
function afterrestorefunc(){
$(this).focus();
}
function oneditfunc(id){
// focus ke elemen pertama
$('#'+id+'_nama_tim').focus();
}
function del_row(id){
var rs = {},
answer = false,
kode = '';
rs = $(this).jqGrid('getRowData', id);
switch ($(this).attr('id')){
case 'grd_tim' : kode = rs.nama_tim; break;
}
answer = confirm('Hapus ' + kode + ' dari daftar?');
if(answer == true){
if ($(this).attr('id') === 'grd_tim'){
purge_tim.push(id);
$(this).jqGrid('delRowData', id);
}
}
}
function after_sukses(){
$(this).focus();
}
function subGridBeforeExpand(subgrid_id, row_id){
if (isNaN(row_id)) return false;
}
function subGridRowExpanded(subgrid_id, row_id){
var tblPejabat, pgrPejabat, flagSD = false;
grdrow = row_id;
tblPejabat = subgrid_id+"_t"; pgrPejabat = subgrid_id+"p_";
$("#"+subgrid_id).html("<table id='"+tblPejabat+"' class='scroll'></table><div id='"+pgrPejabat+"' class='scroll'></div>");
$("#"+tblPejabat).jqGrid({
url:'',
datatype:'local',
mtype:'POST',
colNames:['', '', 'Jabatan Tim', 'Nama Pejabat', '', ''],
colModel:[
{name:'id_tim_pengawasan_pejabat', hidden:true, key:true},
{name:'id_tim_pengawasan_rinci', hidden:true},
{name:'jabatan', width:300, sortable: true, editable:true, editoptions:{dataInit:initselect2}},
{name:'nama', width:500, sortable: true, editable:true, editoptions:{dataInit:initselect3}},
{name:'id_jab_tim_audit', hidden:true, editable:true},
{name:'id_pejabat_spi', hidden:true, editable:true},
],
rownumbers:true,
rowNum:10,
pager:"#"+pgrPejabat,
sortorder:'asc',
viewrecords:true,
gridview:true,
//rowattr: gridRowAttr,
height: '100%',
onSelectRow: function(id){
if(id && id!==lastp){
$(this).restoreRow(lastp);
lastp=id;
}
},
ondblClickRow: gridDoubleClick,
loadComplete: function(){
var t = $(this),
t2 = $('#grd_tim'),
rspd = t2.jqGrid('getRowData', row_id),
info = {id_tim_pengawasan_rinci: row_id},
data = sdrek.filter(function(row){
return parseInt(row.id_tim_pengawasan_rinci) == parseInt(row_id);
});
if (!flagSD) {
setTimeout(function(){
t.jqGrid('setGridParam', {'data':data, 'info':info}).trigger('reloadGrid');
}, 100);
flagSD = true;
}
}
});
$("#"+tblPejabat).jqGrid( 'navGrid', "#"+pgrPejabat, {
add:App.canSave(),
addfunc:add_pejabat,
addtext:'Tambah',
edit:App.canSave(),
editfunc:edit_pejabat,
edittext:'Ubah',
del:App.canSave(),
deltext:'Hapus',
delfunc:del_pejabat,
search:false,
refresh:false
},{},{},{},{});
function gridDoubleClick(id, irow, icol, e) {
e.stopPropagation();
edit_pejabat.call(this, id);
}
function add_pejabat(){
if (!App.canSave()) return;
/* ambil no urut terbesar + 1*/
/* arr = $(this).jqGrid('getDataIDs');
if (arr.length != 0){
id = arr[arr.length - 1] - 1;
}
else id = 1; */
newid = --id;
var data = {id_tim_pengawasan_pejabat:newid, id_tim_pengawasan_rinci:row_id};
$(this).jqGrid('addRowData', newid, {id_tim_pengawasan_rinci:row_id}, 'last');
$(this).jqGrid('setSelection', newid);
lastp = newid;
sdrek.push(data);
}
function edit_pejabat(id){
if (!App.canSave()) return;
var t = this
var row = $(this).jqGrid('getRowData', id);
editparam = {
keys : true,
url: 'clientArray',
aftersavefunc: function(id){$(this).focus(); updateRek(t, id, 'upd');},
beforeSaveRow: beforesavepejabat,
afterrestorefunc: afterrestorepejabat,
oneditfunc: oneditpejabat,
successfunc: null,
errorfunc: null,
restoreAfterError: false,
}
$(this).jqGrid('editRow', id, editparam);
lastp = id;
return false;
}
function beforesavepejabat(opt, id){
var row = $(this).jqGrid('getRowData', id);
jabatan = $('#' + id + '_jabatan').val();
nama = $('#' + id + '_nama').val();
id_pejabat_spi = $('#' + id + '_id_pejabat_spi').val();
// cek semua kolom sudah diisi
if (jabatan == '' || nama == '') {
show_warning('Silahkan melengkapi semua isian.');
return false;
}
data = $(this).jqGrid('getRowData');
found = $.grep(data, function(e) {
return (e.nama == nama );
});
if (found.length) {
show_warning('Pejabat sudah ada');
return false;
}
/* remove select2 */
$('#'+id+'_jabatan').select2('destroy');
$('#'+id+'_nama').select2('destroy');
}
function afterrestorepejabat(){
$(this).focus();
}
function oneditpejabat(id){
// focus ke elemen pertama
$('#'+id+'_pejabat').focus();
}
function del_pejabat(id){
var rs = {},
answer = false,
kode = '';
var t = $(this);
rs = $(this).jqGrid('getRowData', id);
answer = confirm('Hapus data dari daftar?');
if(answer == true){
for(var i=0; i < sdrek.length; i++){
if (sdrek[i].id_tim_pengawasan_rinci == row_id && sdrek[i].id_tim_pengawasan_pejabat == id){
purge_pejabat.push(sdrek[i].id_tim_pengawasan_pejabat);
sdrek.splice(i, 1);
t.jqGrid('delRowData', id);
break;
}
}
}
}
function updateRek(obj, id, cmd){
var t = $(obj),
info = t.jqGrid('getGridParam', 'info'),
data = t.jqGrid('getGridParam', 'data');
row = t.jqGrid('getRowData', id);
for(var i=0; i < sdrek.length; i++){
if (sdrek[i].id_tim_pengawasan_rinci == row_id && sdrek[i].id_tim_pengawasan_pejabat == id){
sdrek[i].jabatan = row.jabatan;
sdrek[i].nama = row.nama;
sdrek[i].id_pejabat_spi = row.id_pejabat_spi;
sdrek[i].id_jab_tim_audit = row.id_jab_tim_audit;
break;
}
}
}
App.formattim = function(res) {
return '<div><strong>' + res.text + '</strong></div><div style="border-bottom:1px solid #ccc">' + res.jabatan + '</div>';
}
query_tim = function(option){
$.ajax({
url: "<?php echo base_url()?>pilih/jabatan_tim_audit",
type: 'POST',
dataType: 'json',
data: {
'q': option.term,
'mode': 'tim_pengawasan'
},
success: function (data) {
if(option.term.length > 0){
data.results.push({id: option.term, text: option.term});
}
option.callback({
results: data.results
});
}
});
}
function initselect2(el){
var oid = el.id;
$(el).select2({
minimumInputLength: 0,
query: query_tim,
placeholder: 'Pilih Jabatan Tim',
openOnEnter: false,
dropdownAutoWidth : true,
initSelection: function(element, callback){
var data = {'text': element.val()};
callback(data);
},
});
$(el).on('change', function(e){
idx = e.target.id;
pos = idx.indexOf('jabatan');
if ( pos > -1){
pre = idx.substring(0, pos);
$('#'+pre+'id_jab_tim_audit').val(e.added ? e.added.id : null);
$(e.target).val(e.added ? e.added.text : '');
return false;
}
e.stopPropagation();
});
$('#s2id_' + oid).on('keyup', function(e){
if (e.keyCode === 13) {
ev = $.Event('keydown');
ev.keyCode= 13;
$(el).trigger(ev);
}
});
}
query_nama_pejabat = function(option){
$.ajax({
url: "<?php echo base_url()?>pilih/pejabat_pemberi_tugas",
type: 'POST',
dataType: 'json',
data: {
'q': option.term
},
success: function (data) {
if(option.term.length > 0){
data.results.push({id: option.term, text: option.term });
}
option.callback({
results: data.results
});
}
});
}
function initselect3(el){
var oid = el.id;
$(el).select2({
minimumInputLength: 0,
query: query_nama_pejabat,
placeholder: 'Pilih Pejabat',
openOnEnter: false,
dropdownAutoWidth : true,
initSelection: function(element, callback){
var data = {'text': element.val()};
callback(data);
},
});
$(el).on('change', function(e){
idx = e.target.id;
pos = idx.indexOf('nama');
if ( pos > -1){
pre = idx.substring(0, pos);
$('#'+pre+'id_pejabat_spi').val(e.added ? e.added.id : null);
$(e.target).val(e.added ? e.added.text : '');
return false;
}
e.stopPropagation();
});
$('#s2id_' + oid).on('keyup', function(e){
if (e.keyCode === 13) {
ev = $.Event('keydown');
ev.keyCode= 13;
$(el).trigger(ev);
}
});
}
}
});
ko.validation.init({
insertMessages: false,
decorateElement: true,
errorElementClass: 'error',
});
var ModelTimAnggaran = function (){
var self = this;
self.processing = ko.observable(false);
self.id = ko.observable(<?php echo isset($data['id_tim_pengawasan'])?$data['id_tim_pengawasan']:0 ?>);
self.nama_inspektur = ko.observable(<?php echo isset($data['nama_inspektur']) ? json_encode($data['nama_inspektur']) : "''" ?>)
.extend({
required: {params: true, message: 'Nama Tim belum diisi'}
});
self.mode = ko.computed(function(){
return self.id() > 0 ? 'edit' : 'new';
});
self.title = ko.computed(function(){
return (self.mode() === 'edit' ? 'Edit Tim Pengawasan' : 'Entri Tim Pengawasan');
});
self.akses_level = ko.observable(<?php echo isset($akses) ? $akses : 0 ?>);
self.canSave = ko.computed(function(){
return self.akses_level() >= 3;
});
self.errors = ko.validation.group(self);
}
var App = new ModelTimAnggaran();
App.back = function(){
location.href = root+modul;
}
App.init_grid = function(){
if (App.id() > 0){
grd_tim.jqGrid('setGridParam', {'url': '<?php echo base_url($modul) ?>/rincian_tim/' + App.id(), 'datatype': 'json'});
grd_tim.trigger('reloadGrid');
}
sdrek = [];
if(App.id()){
setTimeout(function(){
$.ajax({
type: "post",
dataType: "json",
url: root + modul + '/rincian_tim_pejabat/',
data: {
'id': App.id(),
},
success: function(res) {
if ($.isArray(res)) {
sdrek = res;
}
},
});
}, 1000);
}
/* else{
grd_tim.jqGrid('setGridParam', {'url': '<?php echo base_url($modul) ?>/rincian_tim_awal/', 'datatype': 'json'});
grd_tim.trigger('reloadGrid');
} */
}
App.formValidation = function(){
var errmsg = [], ind=[],lk=[];
if (grd_tim.jqGrid('getDataIDs').length === 0) {
errmsg.push('Tim Belum Diisi.');
}
lk = grd_tim.jqGrid('getGridParam', 'savedRow');
if(lk.length > 0){
if(lk[0].id){
grd_tim.jqGrid('saveRow', lk[0].id, null, 'clientArray', null, after_sukses, null, function(){grd_tim.jqGrid('restoreRow', last);});
}
}
if (!App.isValid()){
errmsg.push('Ada kolom yang belum diisi dengan benar. Silakan diperbaiki.');
App.errors.showAllMessages();
}
if (errmsg.length > 0) {
message = errmsg.join('</br>');
show_warning(message);
return false;
}
return true;
}
App.simpan = function(){
if (!App.formValidation()){ return }
var $frm = $('#frm'),
data = JSON.parse(ko.toJSON(App));
data['purge_tim'] = purge_tim;
data['purge_pejabat'] = purge_tim;
data['rincian_tim'] = JSON.stringify(grd_tim.jqGrid('getRowData'));
data['rincian_pejabat'] = JSON.stringify(sdrek);
$.ajax({
url: $frm.attr('action'),
type: 'post',
dataType: 'json',
data: data,
success: function(res, xhr){
if (res.id) App.id(res.id);
if (res.isSuccess) {
show_info(res.message, 'Sukses');
App.init_grid();
purge_tim = [];
purge_pejabat = [];
}
else show_error(res.message, 'Gagal');
}
});
}
ko.applyBindings(App);
setTimeout(function(){App.init_grid();}, 500);
</script>
\ 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