Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
simas-blitar
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Deddy Vita Kurniawan
simas-blitar
Commits
979a0ffe
Commit
979a0ffe
authored
Jul 29, 2024
by
Deddy Vita Kurniawan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
redmine#15879
* tambah field JUDUL, KRITERIA, SEBAB, AKIBAT, TANGGAPAN di tabel temuan_jenis * tambah field ID_REKOMENDASI, TIPE, FILENAME di tabel temuan_jenis_rinci
parent
d5dac608
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
520 additions
and
228 deletions
+520
-228
pilih.php
application/modules/pilih/controllers/pilih.php
+33
-1
pilih_dasar_model.php
application/modules/pilih/models/pilih_dasar_model.php
+15
-0
temuan.php
application/modules/temuan/controllers/temuan.php
+110
-54
temuan_model.php
application/modules/temuan/models/temuan_model.php
+127
-53
temuan_form.php
application/modules/temuan/views/temuan_form.php
+235
-120
No files found.
application/modules/pilih/controllers/pilih.php
View file @
979a0ffe
...
...
@@ -2332,6 +2332,7 @@ class Pilih extends Pilih_Controller
$result
[
$i
][
'jenis_pemeriksaan'
],
$result
[
$i
][
'penugasan'
],
$result
[
$i
][
'nomor'
],
$result
[
$i
][
'tanggal_surat'
],
);
}
}
...
...
@@ -2396,7 +2397,7 @@ class Pilih extends Pilih_Controller
);
}
else
{
$data
[
'colnames'
]
=
array
(
''
,
''
,
''
,
''
,
''
,
''
,
''
,
'Nomor Surat Tugas'
);
$data
[
'colnames'
]
=
array
(
''
,
''
,
''
,
''
,
''
,
''
,
''
,
'Nomor Surat Tugas'
,
'Tanggal'
);
$data
[
'colmodel'
]
=
array
(
array
(
'name'
=>
'id_st'
,
'hidden'
=>
true
),
array
(
'name'
=>
'id_tgs'
,
'hidden'
=>
true
),
...
...
@@ -2406,6 +2407,7 @@ class Pilih extends Pilih_Controller
array
(
'name'
=>
'jns_prs'
,
'hidden'
=>
true
),
array
(
'name'
=>
'penugasan'
,
'hidden'
=>
true
),
array
(
'name'
=>
'no'
,
'width'
=>
400
,
'sortable'
=>
true
,
'search'
=>
true
,
'datatype'
=>
'string'
),
array
(
'name'
=>
'tanggal_surat'
,
'width'
=>
150
,
'sortable'
=>
true
,
'search'
=>
true
,
'formatter'
=>
'date'
),
);
}
$data
[
'orderby'
]
=
'no'
;
...
...
@@ -3043,4 +3045,34 @@ class Pilih extends Pilih_Controller
echo
json_encode
(
$response
);
}
/*
Pilih rekomendasi
Keterangan : mengembalikan daftar rekomendasi
Dipakai di modul temuan
Digunakan untuk komponen select2
*/
function
pilih_rekomendasi
()
{
$q
=
$this
->
input
->
post
(
'q'
);
$mode
=
$this
->
input
->
post
(
'mode'
);
$req_param
=
array
(
"q"
=>
$q
,
"mode"
=>
$mode
);
$result
=
$this
->
pilih_model
->
getRekomendasiSelect
(
$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_rekomendasi'
],
'text'
=>
(
string
)
$result
[
$i
][
'kode'
]
.
" - "
.
$result
[
$i
][
'uraian_rekomendasi'
],
);
}
}
$response
->
sql
=
$this
->
db
->
queries
;
echo
json_encode
(
$response
);
}
}
application/modules/pilih/models/pilih_dasar_model.php
View file @
979a0ffe
...
...
@@ -2749,4 +2749,19 @@ class Pilih_dasar_model extends Pilih_Model
$result
=
$this
->
db
->
get
()
->
result_array
();
return
$result
;
}
function
getRekomendasiSelect
(
$param
)
{
$this
->
db
->
select
(
'
a.id_rekomendasi,
a.kode,
a.uraian_rekomendasi
'
);
$this
->
db
->
from
(
'ref_rekomendasi a'
);
if
(
$param
[
'q'
]
!=
''
)
$this
->
db
->
like
(
'Upper(a.uraian_rekomendasi)'
,
strtoupper
(
$param
[
'q'
]));
$this
->
db
->
order_by
(
'a.kode'
);
$result
=
$this
->
db
->
get
()
->
result_array
();
return
$result
;
}
}
application/modules/temuan/controllers/temuan.php
View file @
979a0ffe
...
...
@@ -2,21 +2,27 @@
class
Temuan
extends
AktivitasBLUD_Controller
{
var
$real_path
;
public
function
__construct
()
{
parent
::
__construct
();
$this
->
modul_name
=
'temuan'
;
$this
->
modul_display
=
'
Draft
Temuan'
;
$this
->
modul_display
=
'Temuan'
;
$this
->
view_form
=
'temuan_form'
;
$this
->
view_daftar
=
'temuan_view'
;
$this
->
report_daftar
=
'Daftar
Draft
Temuan'
;
$this
->
report_form
=
'Form
Draft
Temuan'
;
$this
->
report_daftar
=
'Daftar Temuan'
;
$this
->
report_form
=
'Form Temuan'
;
$this
->
load
->
model
(
'temuan_model'
,
'data_model'
);
$this
->
message_aktivitas_dihapus
=
'Draft Temuan telah dihapus.'
;
$this
->
message_aktivitas_gagal_dihapus
=
'Draft Temuan tidak bisa dihapus.'
;
$this
->
message_gagal_dihapus_dependency
=
'Draft Temuan digunakan di aktivitas lain.'
;
$this
->
message_aktivitas_dihapus
=
'Temuan telah dihapus.'
;
$this
->
message_aktivitas_gagal_dihapus
=
'Temuan tidak bisa dihapus.'
;
$this
->
message_gagal_dihapus_dependency
=
'Temuan digunakan di aktivitas lain.'
;
$this
->
real_path
=
dirname
(
realpath
(
SELF
)
)
.
"/uploads/"
;
if
(
!
file_exists
(
$this
->
real_path
))
{
mkdir
(
'./uploads/'
,
0777
,
true
);
}
}
function
validasi
()
...
...
@@ -32,79 +38,129 @@ class Temuan extends AktivitasBLUD_Controller
$this
->
form_validation
->
set_message
(
'max_length'
,
'%s tidak boleh melebihi %s karakter.'
);
}
function
rinci
(
$id
=
0
)
function
rinci
(
$id
=
0
,
$tipe
)
{
$result
=
$this
->
data_model
->
get_rinci_by_id
(
$id
);
$result
=
$this
->
data_model
->
get_rinci_by_id
(
$id
,
$tipe
);
$response
=
(
object
)
null
;
$last_kkp
=
''
;
if
(
$result
)
{
$x
=
1
;
for
(
$i
=
0
;
$i
<
count
(
$result
);
$i
++
)
{
if
(
$result
[
$i
][
'nomor_kkp'
]
!==
$last_kkp
)
{
$idx
=
'b'
.
$x
;
$row
=
new
stdclass
();
$row
->
id
=
$idx
;
$row
->
cell
=
array
(
$idx
,
''
,
''
,
$result
[
$i
][
'nomor_kkp'
],
'<a href="" style="padding: 0px 2px 0px 2px; text-decoration: underline" id="'
.
$idx
.
'" onclick="return false;" class="view_file">lihat</a>'
,
$result
[
$i
][
'simpulan'
],
$result
[
$i
][
'nomor_kkp'
],
1
,
);
$response
->
rows
[]
=
$row
;
$x
+=
1
;
}
$row
=
new
stdclass
();
$row
->
id
=
$result
[
$i
][
'id_rinci_temuan'
];
if
(
$tipe
==
'1'
){
$row
->
cell
=
array
(
$result
[
$i
][
'id_rinci_temuan'
],
$result
[
$i
][
'id_ref_temuan'
],
$result
[
$i
][
'jenis_temuan
'
],
$result
[
$i
][
'id_rekomendasi'
],
$result
[
$i
][
'kode'
]
.
' - '
.
$result
[
$i
][
'uraian_rekomendasi
'
],
$result
[
$i
][
'deskripsi'
],
);
}
else
if
(
$tipe
==
'2'
){
$row
->
cell
=
array
(
$result
[
$i
][
'id_rinci_temuan'
],
''
,
''
,
$result
[
$i
][
'nomor_kkp
'
],
0
,
$result
[
$i
][
'filename'
]
,
$result
[
$i
][
'filename
'
],
'<input type="file" id="monitoring-file" class="monitoring-fileChanged" accept="application/pdf,.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel, image/gif, image/jpeg">'
,
);
}
$response
->
rows
[]
=
$row
;
$last_kkp
=
$result
[
$i
][
'nomor_kkp'
];
}
}
//$response->sql = $this->db->queries;
//die(print_r($response));
echo
json_encode
(
$response
);
}
public
function
data_kkp
(
$id_surat
)
function
hapus_file
(
)
{
$response
=
(
object
)
null
;
$
result
=
$this
->
data_model
->
get_data_kkp
(
$id_surat
)
;
$response
=
(
object
)
NULL
;
$id
=
$this
->
input
->
post
(
'id'
)
?
$this
->
input
->
post
(
'id'
)
:
0
;
$
nama_file
=
$this
->
input
->
post
(
'nama_file'
)
?
$this
->
input
->
post
(
'nama_file'
)
:
''
;
$response
=
(
object
)
null
;
if
(
$result
)
{
$x
=
1
;
for
(
$i
=
0
;
$i
<
count
(
$result
);
$i
++
)
{
$idx
=
'b'
.
$x
;
$response
->
rows
[
$i
][
'id'
]
=
$idx
;
$response
->
rows
[
$i
][
'cell'
]
=
array
(
$idx
,
''
,
''
,
$result
[
$i
][
'nomor_kkp'
],
'<a href="" style="padding: 0px 2px 0px 2px; text-decoration: underline" id="'
.
$idx
.
'" onclick="return false;" class="view_file">lihat</a>'
,
$result
[
$i
][
'simpulan'
],
$result
[
$i
][
'nomor_kkp'
],
1
,
);
$x
+=
1
;
if
(
file_exists
(
dirname
(
$_SERVER
[
'SCRIPT_FILENAME'
])
.
'/uploads/'
.
$nama_file
))
{
$logo_file
=
dirname
(
$_SERVER
[
'SCRIPT_FILENAME'
])
.
'/uploads/'
.
$nama_file
;
unlink
(
$logo_file
);
$response
->
message
=
'File berhasil di hapus'
;
$response
->
isSuccess
=
TRUE
;
}
else
{
$response
->
message
=
'File tidak ditemukan'
;
$response
->
isSuccess
=
FALSE
;
}
echo
json_encode
(
$response
);
}
function
preview
(
$filename
){
$this
->
load
->
helper
(
'file'
);
$dokumen
=
$this
->
real_path
.
$filename
;
$this
->
load
->
helper
(
'file'
);
if
(
!
file_exists
(
$dokumen
))
{
$this
->
output
->
set_status_header
(
500
);
return
;
}
$ext
=
strtolower
(
pathinfo
(
$dokumen
,
PATHINFO_EXTENSION
));
header
(
'Content-Disposition: filename="'
.
$filename
.
'"'
);
header
(
'Content-Type: application/$ext'
);
header
(
'Content-Length: '
.
filesize
(
$dokumen
));
header
(
'Cache-Control: no-store'
);
readfile
(
$dokumen
);
}
function
upload
(){
$is_siup
=
isset
(
$_FILES
[
'hasil'
]);
$result
=
$this
->
proses_dokumen
(
$_FILES
[
'hasil'
]);
//die(print_r($result));
echo
json_encode
(
$result
);
}
function
proses_dokumen
(
$file
){
$this
->
load
->
helper
(
'file'
);
$valid_exts
=
array
(
'pdf'
,
'xls'
,
'jpg'
,
'jpeg'
,
'png'
,
'doc'
);
// valid extensions
$max_size
=
10000
*
1024
;
// get uploaded file extension
$ext
=
strtolower
(
pathinfo
(
$file
[
'name'
],
PATHINFO_EXTENSION
));
// looking for format and size validity
if
(
in_array
(
$ext
,
$valid_exts
)
AND
$file
[
'size'
]
<
$max_size
)
{
// unique file path ;
$uid
=
uniqid
();
$ext
=
strtolower
(
pathinfo
(
$file
[
'name'
],
PATHINFO_EXTENSION
));
$realname
=
$uid
.
"-"
.
$this
->
TextKeSlug
(
pathinfo
(
$file
[
'name'
],
PATHINFO_FILENAME
))
.
"."
.
$ext
;
$path
=
$this
->
real_path
.
$realname
;
// move uploaded file from temp to uploads directory
if
(
move_uploaded_file
(
$file
[
'tmp_name'
],
$path
))
{
$result
=
array
(
'status'
=>
true
,
'filename'
=>
$realname
,
'realname'
=>
$realname
);
}
else
{
$result
=
array
(
'status'
=>
false
,
'deskripsi'
=>
'gagal mengunggah dokumen'
);
}
}
else
{
$result
=
array
(
'status'
=>
false
,
'deskripsi'
=>
'hanya menerima file pdf,xls,jpg,jpeg,png,doc'
);
}
return
$result
;
}
function
TextKeSlug
(
$text
)
{
$text
=
trim
(
$text
);
if
(
empty
(
$text
))
return
''
;
$text
=
preg_replace
(
"/[^a-zA-Z0-9\-\s]+/"
,
""
,
$text
);
$text
=
strtolower
(
trim
(
$text
));
$text
=
str_replace
(
' '
,
'-'
,
$text
);
$text
=
$text_ori
=
preg_replace
(
'/\-{2,}/'
,
'-'
,
$text
);
return
$text
;
}
}
application/modules/temuan/models/temuan_model.php
View file @
979a0ffe
...
...
@@ -7,9 +7,12 @@ class Temuan_model extends Base_Model
var
$fieldmap_filter
;
var
$fieldmap_audit
;
var
$fieldmap_audit_rinci
;
var
$fieldmap_rinci_file
;
var
$data_audit
;
var
$data_audit_rinci
;
var
$purge_audit
;
var
$data_hasil
;
var
$purge
;
var
$purge_hasil
;
function
__construct
()
...
...
@@ -29,21 +32,33 @@ class Temuan_model extends Base_Model
'nomor_surat'
=>
'a.nomor'
,
'tgl'
=>
'a.tanggal_surat'
,
'penugasan'
=>
'a.penugasan'
,
'periode'
=>
'a.periode_diaudit'
);
$this
->
fieldmap_audit
=
array
(
'id
_temuan_jenis
'
=>
'id_temuan_jenis'
,
'id'
=>
'id_temuan_jenis'
,
'id_surat'
=>
'id_surat'
,
'id_ref_temuan'
=>
'id_ref_temuan'
,
'judul'
=>
'judul'
,
'deskripsi'
=>
'deskripsi'
,
'kriteria'
=>
'kriteria'
,
'sebab'
=>
'sebab'
,
'akibat'
=>
'akibat'
,
'tanggapan'
=>
'tanggapan'
,
);
$this
->
fieldmap_audit_rinci
=
array
(
'id_rinci_temuan'
=>
'id_rinci_temuan'
,
'id_temuan_jenis'
=>
'id_temuan_jenis'
,
'id_
jns'
=>
'id_ref_temuan
'
,
'id_
rekomendasi'
=>
'id_rekomendasi
'
,
'deskripsi'
=>
'deskripsi'
,
'kkr'
=>
'nomor_kkp'
,
'no_urut'
=>
'kode'
,
'tipe'
=>
'tipe'
,
);
$this
->
fieldmap_rinci_file
=
array
(
'id_rinci_temuan'
=>
'id_rinci_temuan'
,
'id_temuan_jenis'
=>
'id_temuan_jenis'
,
'filename'
=>
'filename'
,
'tipe'
=>
'tipe'
,
);
$this
->
fieldmap_daftar_aggregate
=
array
(
...
...
@@ -54,12 +69,11 @@ class Temuan_model extends Base_Model
function
get_grid_model
()
{
$grid
=
array
(
'colNames'
=>
array
(
'Nomor'
,
'Tanggal Surat'
,
'Penugasan'
,
'Periode Audit'
),
'colNames'
=>
array
(
'Nomor'
,
'Tanggal Surat'
,
'Penugasan'
),
'colModel'
=>
array
(
array
(
'name'
=>
'no'
,
'width'
=>
180
,
'sortable'
=>
true
,
'formatter'
=>
'daftarOpFmatter'
),
array
(
'name'
=>
'tgl'
,
'width'
=>
100
,
'sortable'
=>
true
,
'formatter'
=>
'date'
,
'align'
=>
'center'
),
array
(
'name'
=>
'penugasan'
,
'width'
=>
560
,
'sortable'
=>
true
),
array
(
'name'
=>
'periode'
,
'width'
=>
120
,
'sortable'
=>
true
),
),
);
return
$grid
;
...
...
@@ -72,7 +86,6 @@ class Temuan_model extends Base_Model
'no'
=>
array
(
'name'
=>
'Nomor'
,
'kategori'
=>
'string'
),
'tgl'
=>
array
(
'name'
=>
'Tanggal Surat'
,
'kategori'
=>
'date'
),
'penugasan'
=>
array
(
'name'
=>
'Penugasan'
,
'kategori'
=>
'string'
),
'periode'
=>
array
(
'name'
=>
'Periode'
,
'kategori'
=>
'string'
),
);
return
$fields
;
...
...
@@ -91,13 +104,19 @@ class Temuan_model extends Base_Model
}
/* ambil data tim audit rinci*/
$this
->
purge_audit
=
$this
->
input
->
post
(
'purge'
);
$this
->
purge_audit
=
$this
->
purge_audit
?
$this
->
purge_audit
:
NULL
;
$this
->
purge
=
$this
->
input
->
post
(
'purge'
);
$this
->
purge
=
$this
->
purge
?
$this
->
purge
:
NULL
;
$this
->
purge_hasil
=
$this
->
input
->
post
(
'purge_hasil'
);
$this
->
purge_hasil
=
$this
->
purge_hasil
?
$this
->
purge_hasil
:
NULL
;
$rinci
=
$this
->
input
->
post
(
'rincian'
)
?
$this
->
input
->
post
(
'rincian'
)
:
NULL
;
$grid_hasil
=
$this
->
input
->
post
(
'data_hasil'
)
?
$this
->
input
->
post
(
'data_hasil'
)
:
NULL
;
if
(
$rinci
)
{
$rinci
=
json_decode
(
$rinci
);
for
(
$i
=
0
;
$i
<=
count
(
$rinci
)
-
1
;
$i
++
)
{
foreach
(
$this
->
fieldmap_audit_rinci
as
$key
=>
$value
)
{
switch
(
$key
)
{
case
'tipe'
:
$$key
=
'1'
;
break
;
default
:
$$key
=
isset
(
$rinci
[
$i
]
->
$key
)
&&
$rinci
[
$i
]
->
$key
?
$rinci
[
$i
]
->
$key
:
NULL
;
}
...
...
@@ -107,13 +126,33 @@ class Temuan_model extends Base_Model
}
}
}
if
(
$grid_hasil
)
{
$grid_hasil
=
json_decode
(
$grid_hasil
);
for
(
$i
=
0
;
$i
<=
count
(
$grid_hasil
)
-
1
;
$i
++
)
{
foreach
(
$this
->
fieldmap_rinci_file
as
$key
=>
$value
){
switch
(
$key
)
{
case
'tipe'
:
$$key
=
'2'
;
break
;
case
'filename'
:
$$key
=
isset
(
$grid_hasil
[
$i
]
->
$key
)
?
$grid_hasil
[
$i
]
->
$key
:
''
;
break
;
default
:
$$key
=
isset
(
$grid_hasil
[
$i
]
->
$key
)
&&
$grid_hasil
[
$i
]
->
$key
?
$grid_hasil
[
$i
]
->
$key
:
NULL
;
}
if
(
isset
(
$$key
))
$this
->
data_hasil
[
$i
][
$value
]
=
$$key
;
}
}
}
}
function
insert_audit
()
{
$id_temuan_jenis
=
!
empty
(
$this
->
data_audit
[
'id_temuan_jenis'
])
?
str_replace
(
'new_'
,
0
,
$this
->
data_audit
[
'id_temuan_jenis'
])
:
0
;
//$id_temuan_jenis = $data_audit['id_temuan_jenis']?$data_audit['id_temuan_jenis']:null;
$this
->
db
->
select
(
'id_temuan_jenis'
)
->
from
(
'temuan_jenis'
)
->
where
(
'id_temuan_jenis'
,
$id_temuan_jenis
);
$rs
=
$this
->
db
->
get
()
->
row_array
();
...
...
@@ -126,7 +165,6 @@ class Temuan_model extends Base_Model
}
else
{
//$idn = $this->get_id('g_id_program_kerja_audit');
$this
->
db
->
select_max
(
'id_temuan_jenis'
)
->
from
(
'temuan_jenis'
);
$res
=
$this
->
db
->
get
()
->
row_array
();
$id
=
$res
[
'id_temuan_jenis'
]
+
1
;
...
...
@@ -142,9 +180,9 @@ class Temuan_model extends Base_Model
/* Simpan rincian tim audit */
function
insert_audit_rinci
()
{
if
(
$this
->
purge
_audit
)
{
$this
->
db
->
where_in
(
'id_rinci_temuan'
,
$this
->
purge
_audit
);
$this
->
db
->
where
(
'id_
surat
'
,
$this
->
id
);
if
(
$this
->
purge
)
{
$this
->
db
->
where_in
(
'id_rinci_temuan'
,
$this
->
purge
);
$this
->
db
->
where
(
'id_
temuan_jenis
'
,
$this
->
id
);
$this
->
db
->
delete
(
'temuan_jenis_rinci'
);
$this
->
check_trans_status
(
'delete temuan_jenis_rinci failed'
);
}
...
...
@@ -176,11 +214,48 @@ class Temuan_model extends Base_Model
}
}
function
insert_file
()
{
if
(
$this
->
purge_hasil
)
{
$this
->
db
->
where_in
(
'id_rinci_temuan'
,
$this
->
purge_hasil
);
$this
->
db
->
where
(
'id_temuan_jenis'
,
$this
->
id
);
$this
->
db
->
delete
(
'temuan_jenis_rinci'
);
$this
->
check_trans_status
(
'delete temuan_jenis_rinci failed'
);
}
for
(
$i
=
0
;
$i
<
count
(
$this
->
data_hasil
);
$i
++
)
{
$idrbm
=
isset
(
$this
->
data_hasil
[
$i
][
'id_rinci_temuan'
])
?
str_replace
(
'new_'
,
0
,
$this
->
data_hasil
[
$i
][
'id_rinci_temuan'
])
:
NULL
;
$temp
=
$idrbm
;
$this
->
db
->
select
(
'id_rinci_temuan'
)
->
from
(
'temuan_jenis_rinci'
)
->
where
(
'id_temuan_jenis'
,
$this
->
id
)
->
where
(
'id_rinci_temuan'
,
$idrbm
);
$rs
=
$this
->
db
->
get
()
->
row_array
();
if
(
$rs
)
{
$this
->
db
->
where
(
'id_rinci_temuan'
,
$idrbm
);
$this
->
db
->
where
(
'id_temuan_jenis'
,
$this
->
id
);
$this
->
db
->
update
(
'temuan_jenis_rinci'
,
$this
->
data_hasil
[
$i
]);
$this
->
check_trans_status
(
'update temuan_jenis_rinci failed'
);
$idmkr
=
$idrbm
;
}
else
{
unset
(
$this
->
data_hasil
[
$i
][
'id_rinci_temuan'
]
);
$this
->
data_hasil
[
$i
][
'id_temuan_jenis'
]
=
$this
->
id
;
$this
->
db
->
insert
(
'temuan_jenis_rinci'
,
$this
->
data_hasil
[
$i
]);
$this
->
check_trans_status
(
'insert temuan_jenis_rinci failed'
);
}
}
}
function
save_detail
()
{
$this
->
nomor
=
$this
->
input
->
post
(
'nomor_surat'
);
$this
->
insert_audit
();
$this
->
insert_audit_rinci
();
$this
->
insert_file
();
}
/* Query daftar */
...
...
@@ -210,64 +285,46 @@ class Temuan_model extends Base_Model
b.id_jns_penugasan,
c.jenis_penugasan,
b.id_jns_pemeriksaan,
d.jenis_pemeriksaan
d.jenis_pemeriksaan,
a.id_ref_temuan,
e.jenis_temuan,
a.judul,
a.deskripsi,
a.kriteria,
a.sebab,
a.akibat,
a.tanggapan,
b.penugasan
'
);
$this
->
db
->
from
(
'temuan_jenis a'
);
$this
->
db
->
join
(
'surat_penugasan b'
,
'b.id_surat=a.id_surat'
);
$this
->
db
->
join
(
'ref_jns_penugasan c'
,
'c.id_jns = b.id_jns_penugasan'
,
'left'
);
$this
->
db
->
join
(
'ref_jns_pemeriksaan d'
,
'd.id_jns = b.id_jns_pemeriksaan'
,
'left'
);
$this
->
db
->
join
(
'ref_jns_temuan e'
,
'e.id_jns = a.id_ref_temuan'
,
'left'
);
$this
->
db
->
where
(
'a.id_temuan_jenis'
,
$id
);
}
function
get_rinci_by_id
(
$id
=
0
)
function
get_rinci_by_id
(
$id
=
0
,
$tipe
)
{
$this
->
db
->
select
(
'
a.id_rinci_temuan,
a.id_temuan_jenis,
a.kode,
a.nomor_kkp,
a.id_ref_temuan,
b.jenis_temuan,
b.id_rekomendasi,
b.kode,
a.deskripsi,
d.id_kertas_kerja,
convert(d.uraian using utf8) uraian,
convert(d.simpulan using utf8) simpulan
b.uraian_rekomendasi,
a.filename
'
);
$this
->
db
->
from
(
'temuan_jenis_rinci a'
);
$this
->
db
->
join
(
'ref_jns_temuan b'
,
'b.id_jns = a.id_ref_temuan'
);
$this
->
db
->
join
(
'temuan_jenis c'
,
'c.id_temuan_jenis = a.id_temuan_jenis'
);
$this
->
db
->
join
(
'kertas_kerja d'
,
'd.id_surat = c.id_surat and d.nomor_kkp=a.nomor_kkp'
);
$this
->
db
->
join
(
'ref_rekomendasi b'
,
'b.id_rekomendasi = a.id_rekomendasi'
,
'left'
);
$this
->
db
->
where
(
'a.id_temuan_jenis'
,
$id
);
$this
->
db
->
where
(
'a.tipe'
,
$tipe
);
$this
->
db
->
order_by
(
'a.kode'
,
'asc'
);
$result
=
$this
->
db
->
get
()
->
result_array
();
return
$result
;
}
function
get_data_kkp
(
$id_surat
)
{
$this
->
db
->
select
(
"id_kertas_kerja, nomor_kkp, convert(simpulan using utf8) simpulan"
);
$this
->
db
->
from
(
'kertas_kerja'
);
$this
->
db
->
where
(
'id_surat'
,
$id_surat
);
$this
->
db
->
where
(
'is_simpulan'
,
1
);
$result
=
$this
->
db
->
get
()
->
result_array
();
return
$result
;
}
function
get_data_simpulan
(
$id_kertas_kerja
)
{
$this
->
active_group
=
'simass'
;
$this
->
db2
=
$this
->
load
->
database
(
$this
->
active_group
,
TRUE
);
$this
->
db2
->
select
(
'convert(uraian using utf8) uraian, convert(simpulan using utf8) simpulan'
);
$this
->
db2
->
from
(
'kertas_kerja'
);
$this
->
db2
->
where
(
'id_kertas_kerja'
,
$id_kertas_kerja
);
$result
=
$this
->
db2
->
get
()
->
row_array
();
return
$result
[
'simpulan'
];
}
function
check_dependency
(
$id
)
{
$this
->
db
->
select
(
"
...
...
@@ -277,13 +334,30 @@ class Temuan_model extends Base_Model
$result
=
$this
->
db
->
get
(
'temuan_jenis a'
)
->
row_array
();
return
!
(
$result
[
'konsep_laporan_pakai'
]
>
0
);
return
true
;
}
function
build_query_hapus
(
$id
=
0
)
{
$this
->
db
->
where
(
'id_temuan_jenis'
,
$id
)
->
delete
(
'temuan_jenis_rinci'
);
$this
->
db
->
select
(
'
a.id_rinci_temuan,
a.filename
'
);
$this
->
db
->
from
(
'temuan_jenis_rinci a'
);
$this
->
db
->
where
(
'a.id_temuan_jenis'
,
$id
);
$result
=
$this
->
db
->
get
()
->
result_array
();
for
(
$i
=
0
;
$i
<
count
(
$result
);
$i
++
){
if
(
!
empty
(
$result
[
$i
][
'filename'
])){
if
(
file_exists
(
dirname
(
$_SERVER
[
'SCRIPT_FILENAME'
])
.
'/uploads/'
.
$result
[
$i
][
'filename'
]))
{
$logo_file
=
dirname
(
$_SERVER
[
'SCRIPT_FILENAME'
])
.
'/uploads/'
.
$result
[
$i
][
'filename'
];
unlink
(
$logo_file
);
}
}
$this
->
db
->
where
(
'id_rinci_temuan'
,
$result
[
$i
][
'id_rinci_temuan'
])
->
delete
(
'temuan_jenis_rinci'
);
$this
->
check_trans_status
(
'delete temuan_jenis_rinci failed'
);
}
//$this->db->where('id_temuan_jenis', $id)->delete('temuan_jenis_rinci');
//$this->check_trans_status('delete temuan_jenis_rinci failed');
$this
->
db
->
where
(
'id_temuan_jenis'
,
$id
)
->
delete
(
'temuan_jenis'
);
$this
->
check_trans_status
(
'delete temuan_jenis failed'
);
}
...
...
application/modules/temuan/views/temuan_form.php
View file @
979a0ffe
<script
type=
"text/javascript"
src=
"
<?php
echo
base_url
()
?>
assets/js/ckeditor/ckeditor.js"
></script>
<section
class=
"content"
>
<div
class=
"container-fluid"
>
<fieldset>
...
...
@@ -10,7 +9,7 @@
<div
class=
"control-group pull-left"
data-bind=
"validationElement: nomor_surat"
>
<label
class=
"control-label"
for=
"nomor_surat"
>
Nomor Surat Tugas
</label>
<div
class=
"controls span3 input-append"
>
<input
type=
"text"
class=
"span3"
id=
"nomor_surat"
readonly=
"1"
data-bind=
"value: nomor_surat"
style=
"margin-left:-20px"
/>
<input
type=
"text"
class=
"span3"
id=
"nomor_surat"
readonly=
"1"
data-bind=
"value: nomor_surat"
/>
<span
class=
"add-on"
data-bind=
"visible: !isEdit(), click: pilih_surat"
><i
class=
"icon-folder-open"
></i></span>
</div>
</div>
...
...
@@ -18,91 +17,95 @@
<label
class=
"control-label"
for=
"tgl"
>
Tanggal Surat
</label>
<input
type=
"text"
id=
"tgl"
class=
"span2 datepicker"
data-bind=
"value: tgl, css: {datepicker: canEdit()}"
readonly=
"1"
/>
</div>
<div
class=
"control-group pull-left"
style=
"margin-left:20px"
data-bind=
"validationElement: jns_periksa"
>
<label
class=
"control-label"
for=
""
>
Jenis Pemeriksaan
</label>
<input
type=
"text"
id=
"jns_periksa"
class=
"span5"
data-bind=
"attr : {'data-init': nama_periksa}, value: jns_periksa, select2: {minimumInputLength: 0, containerCss: {'margin-left':'0px'}, placeholder: 'Pilih Jenis Pemeriksaan', initSelection: init_select, query: query_jenis_periksa}"
readonly=
"1"
/>
</div>
</div>
<div
class=
"controls-row"
>
<div
class=
"control-group pull-left"
data-bind=
"
validationElement: jns_tugas
"
>
<label
class=
"control-label"
for=
"
jns_tugas"
>
Jenis Pengawasan
</label>
<
input
type=
"text"
id=
"jns_tugas"
class=
"span5"
data-bind=
"attr : {'data-init': nama_jns_tugas}, value: jns_tugas, select2: {minimumInputLength: 0, containerCss: {'margin-left':'0px'}, containerCssClass: 'span8', placeholder: 'Pilih Jenis Pengawasan', initSelection: init_select, query: query_jenis_tugas, formatResult: formatPejabat }"
readonly=
"1"
/
>
<div
class=
"control-group pull-left"
data-bind=
""
>
<label
class=
"control-label"
for=
"
"
>
Ruang Lingkup
</label>
<
textarea
rows=
"2"
class=
"span8"
id=
"kriteria"
data-bind=
"value: penugasan"
readonly=
"1"
></textarea
>
</div>
</div>
<div
class=
"controls-row"
>
<div
class=
"control-group pull-left"
data-bind=
""
>
<label
class=
"control-label"
for=
""
>
Jenis Pemeriksa
an
</label>
<input
type=
"text"
id=
"
jns_periksa"
class=
"span5"
data-bind=
"attr : {'data-init': nama_periksa}, value: jns_periksa, select2: {minimumInputLength: 0, containerCss: {'margin-left':'0px'}, placeholder: 'Pilih Jenis Pemeriksaan', initSelection: init_select, query: query_jenis_periksa}"
readonly=
"1
"
/>
<label
class=
"control-label"
for=
""
>
Temu
an
</label>
<input
type=
"text"
id=
"
id_ref_temuan"
class=
"span8"
data-bind=
"attr : {'data-init': rekomendasi}, value: id_ref_temuan, select2: {minimumInputLength: 0, containerCss: {'margin-left':'0px'}, placeholder: 'Pilih Temuan', initSelection: init_select, query: query_temuan}
"
/>
</div>
</div>
<ul
class=
"nav nav-tabs"
id=
"myTab"
style=
"margin-bottom:5px"
>
<li
class=
"active"
><a
href=
"#temuan"
>
Temuan
</a></li>
</ul>
<div
class=
"tab-content"
style=
"height:325px"
>
<div
class=
"tab-pane active"
id=
"audit"
>
<table
id=
"grd_temuan"
></table>
<div
id=
"pgr_temuan"
></div>
<div
class=
"controls-row"
>
<div
class=
"control-group pull-left"
data-bind=
"validationElement: judul"
>
<label
class=
"control-label"
for=
"judul"
>
Judul
</label>
<input
type=
"text"
id=
"judul"
class=
"span8"
data-bind=
"value: judul"
required
/>
</div>
</div>
<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"
id=
"print"
data-bind=
"enable: canPrint(), click: print"
>
Cetak
</button>
<input
type=
"button"
id=
"back"
value=
"Kembali"
class=
"btn btn-primary"
data-bind=
"click: back"
/>
<div
class=
"controls-row"
>
<div
class=
"control-group pull-left"
data-bind=
"validationElement: deskripsi"
>
<label
class=
"control-label"
for=
"deskripsi"
>
Deskripsi
</label>
<textarea
rows=
"2"
class=
"span8"
id=
"deskripsi"
data-bind=
"value: deskripsi"
></textarea>
</div>
</form>
<!--<div class="modal fade cia_modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header bg-primary">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">×</span>
<span class="sr-only">Close</span>
</button>
<h4 class="modal-title">Uraian Kesimpulan</h4>
</div>
<div class="modal-body">
<div class="form-group">
<textarea class="ck_editor" name="post" id="" cols="30" rows="10"></textarea>
<div
class=
"controls-row"
>
<div
class=
"control-group pull-left"
data-bind=
"validationElement: kriteria"
>
<label
class=
"control-label"
for=
"kriteria"
>
Kriteria
</label>
<textarea
rows=
"2"
class=
"span8"
id=
"kriteria"
data-bind=
"value: kriteria"
></textarea>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-white" data-dismiss="modal">Close</button>
<div
class=
"controls-row"
>
<div
class=
"control-group pull-left"
data-bind=
"validationElement: sebab"
>
<label
class=
"control-label"
for=
"sebab"
>
Sebab
</label>
<textarea
rows=
"2"
class=
"span8"
id=
"sebab"
data-bind=
"value: sebab"
></textarea>
</div>
</div>
<div
class=
"controls-row"
>
<div
class=
"control-group pull-left"
data-bind=
"validationElement: akibat"
>
<label
class=
"control-label"
for=
"akibat"
>
Akibat
</label>
<textarea
rows=
"2"
class=
"span8"
id=
"akibat"
data-bind=
"value: akibat"
></textarea>
</div>
</div>-->
<div
class=
"modal fade"
id=
"exampleModal"
tabindex=
"-1"
role=
"dialog"
aria-labelledby=
"exampleModalLabel"
aria-hidden=
"true"
>
<div
class=
"modal-dialog modal-lg"
role=
"document"
>
<div
class=
"modal-content"
>
<div
class=
"modal-header"
>
<h5
class=
"modal-title"
id=
"exampleModalLabel"
>
Uraian Kesimpulan
</h5>
<button
type=
"button"
class=
"close"
data-dismiss=
"modal"
aria-label=
"Close"
>
<span
aria-hidden=
"true"
>
×
</span>
</button>
</div>
<div
class=
"modal-body"
>
<textarea
id=
"simpulan"
rows=
"1"
class=
"span8"
></textarea>
<div
class=
"controls-row"
>
<div
class=
"control-group pull-left"
data-bind=
"validationElement: tanggapan"
>
<label
class=
"control-label"
for=
"tanggapan"
>
Tanggapan Auditan
</label>
<textarea
rows=
"2"
class=
"span8"
id=
"tanggapan"
data-bind=
"value: tanggapan"
></textarea>
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-dismiss=
"modal"
>
Tutup
</button>
</div>
<ul
class=
"nav nav-tabs"
id=
"myTab"
style=
"margin-bottom:5px"
>
<li
class=
"active"
><a
href=
"#temuan"
>
Detail
</a></li>
<li><a
href=
"#tab_rekomendasi"
>
File Pendukung
</a></li>
</ul>
<div
class=
"tab-content"
>
<div
class=
"tab-pane active"
id=
"temuan"
>
<table
id=
"grd_temuan"
></table>
<div
id=
"pgr_temuan"
></div>
</div>
<div
class=
"tab-pane"
id=
"tab_rekomendasi"
>
<div
class=
"controls-row"
>
<div
class=
"control-group"
>
<table
id=
"grd_hasil"
></table>
<div
id=
"pgr_hasil"
></div>
</div>
</div>
</div>
</div>
<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"
id=
"print"
data-bind=
"enable: canPrint(), click: print"
>
Cetak
</button>
<input
type=
"button"
id=
"back"
value=
"Kembali"
class=
"btn btn-primary"
data-bind=
"click: back"
/>
</div>
</form>
<script
type=
"text/javascript"
>
var
idp
=
lastp
=
0
,
last
,
last
,
last_hasil
,
akses
=
<?php
echo
$akses
;
?>
,
purge
=
[];
purge
=
[],
purge_hasil
=
[];
var
grd_hasil
=
$
(
'#grd_hasil'
),
purge_hasil
=
[];
$
(
document
).
ready
(
function
()
{
CKEDITOR
.
replace
(
'simpulan'
);
/* CKEDITOR.instances.simpulan.on('change', function() {
App.simpulan(CKEDITOR.instances.simpulan.getData());
}); */
$
.
datepicker
.
setDefaults
(
$
.
datepicker
.
regional
[
'id'
]);
...
...
@@ -117,16 +120,12 @@
url
:
''
,
datatype
:
'local'
,
mtype
:
'POST'
,
colNames
:
[
''
,
''
,
'K
larifikasi Temuan'
,
'Deskripsi Temuan'
,
'Lihat'
,
''
,
''
,
'
'
],
colNames
:
[
''
,
''
,
'K
ode Rekomendasi'
,
'Saran/Rekomendasi
'
],
colModel
:
[
{
name
:
'id_rinci_temuan'
,
hidden
:
true
,
editable
:
true
,
key
:
true
},
{
name
:
'id_
jns
'
,
hidden
:
true
,
editable
:
true
},
{
name
:
'
jenis_temuan
'
,
width
:
400
,
sortable
:
false
,
editable
:
true
,
editoptions
:{
dataInit
:
initselect3
}},
{
name
:
'id_
rekomendasi
'
,
hidden
:
true
,
editable
:
true
},
{
name
:
'
rekomendasi
'
,
width
:
400
,
sortable
:
false
,
editable
:
true
,
editoptions
:{
dataInit
:
initselect3
}},
{
name
:
'deskripsi'
,
width
:
400
,
sortable
:
false
,
editable
:
true
},
{
name
:
'lihat'
,
width
:
100
,
sortable
:
false
,
editable
:
false
},
{
name
:
'simpulan'
,
hidden
:
true
},
{
name
:
'kkr'
,
hidden
:
true
},
{
name
:
'lvl'
,
hidden
:
true
},
],
pager
:
'#pgr_temuan'
,
rowNum
:
1000
,
...
...
@@ -136,10 +135,9 @@
gridview
:
true
,
shrinkToFit
:
false
,
loadonce
:
true
,
width
:
'1015'
,
height
:
'20
0'
,
autowidth
:
true
,
height
:
'32
0'
,
recordtext
:
'{2} baris'
,
rowattr
:
gridRowAttr
,
loadComplete
:
function
()
{
},
onSelectRow
:
function
(
id
)
{
...
...
@@ -164,34 +162,57 @@
refreshtext
:
'Refresh'
,
search
:
false
,
},
{},
{},
{},
{});
});
$
(
"#grd_temuan"
).
on
(
'click'
,
'.view_file'
,
(
function
(){
//var url = $(this).attr('href');
console
.
log
(
$
(
this
).
attr
(
'id'
),
'this'
);
row
=
$
(
"#grd_temuan"
).
jqGrid
(
'getRowData'
,
$
(
this
).
attr
(
'id'
));
console
.
log
(
row
,
'row'
);
console
.
log
(
row
.
simpulan
,
'simpulan'
);
CKEDITOR
.
instances
[
'simpulan'
].
setData
(
row
.
simpulan
);
$
(
'#exampleModal'
).
modal
(
'show'
);
//window.open(url, '_blank');
}));
grd_hasil
.
jqGrid
({
url
:
''
,
datatype
:
'local'
,
mtype
:
'POST'
,
colNames
:[
''
,
'Upload'
,
'Nama File'
,
''
,
''
],
colModel
:[
{
name
:
'id_rinci_temuan'
,
hidden
:
true
,
key
:
true
},
{
name
:
'uploadfile'
,
width
:
70
,
editable
:
false
,
sortable
:
false
,
formatter
:
aksiFormat
},
{
name
:
'realname'
,
width
:
500
,
sortable
:
false
,
formatter
:
linkFormat
},
{
name
:
'filename'
,
hidden
:
true
},
{
name
:
'input'
,
hidden
:
true
},
],
pager
:
'#pgr_hasil'
,
rowNum
:
1000000
,
scroll
:
true
,
rownumbers
:
true
,
viewrecords
:
true
,
gridview
:
true
,
shrinkToFit
:
false
,
autowidth
:
true
,
height
:
'320'
,
recordtext
:
'{2} baris'
,
onSelectRow
:
function
(
id
){
if
(
id
&&
id
!==
last_hasil
){
$
(
this
).
restoreRow
(
last_hasil
);
last_hasil
=
id
;
}
},
});
grd_hasil
.
jqGrid
(
'navGrid'
,
'#pgr_hasil'
,
{
add
:
App
.
canEdit
(),
addtext
:
'Tambah'
,
addfunc
:
add_file
,
edit
:
false
,
del
:
App
.
canEdit
(),
deltext
:
'Hapus'
,
delfunc
:
del_file
,
search
:
false
,
refresh
:
false
,
refreshtext
:
'Refresh'
,
},{},{},{},{});
});
function
add_row
()
{
if
(
!
App
.
canEdit
())
return
;
var
curid
=
$
(
this
).
jqGrid
(
'getGridParam'
,
'selrow'
),
row
=
$
(
this
).
jqGrid
(
'getRowData'
,
curid
);
if
(
!
curid
||
row
.
kkr
==
""
){
show_warning
(
'Untuk menambah Jenis Temuan silahkan pilih KKP terlebih dahulu'
);
return
;
}
newid
=
'new_'
+
parseFloat
((
new
Date
().
getTime
()
+
''
).
slice
(
7
))
+
Math
.
round
(
Math
.
random
()
*
100
);
//$("#grd_temuan").jqGrid('addRowData', newid, {id_rinci_temuan: newid, kkr : row.kkr}, 'after', curid);
var
defdata
=
{
id_rinci_temuan
:
newid
,
kkr
:
row
.
kkr
,
lvl
:
0
};
var
defdata
=
{
id_rinci_temuan
:
newid
};
var
editparam
=
{
keys
:
true
,
url
:
'clientArray'
,
...
...
@@ -202,17 +223,39 @@
restoreAfterError
:
false
,
}
$
(
this
).
jqGrid
(
'addRowData'
,
newid
,
defdata
,
'after'
,
curid
);
$
(
this
).
jqGrid
(
'addRowData'
,
newid
,
defdata
);
$
(
"#"
+
newid
).
addClass
(
"jqgrid-new-row"
);
$
(
this
).
jqGrid
(
'editRow'
,
newid
,
editparam
);
$
(
this
).
jqGrid
(
'setSelection'
,
newid
);
};
function
add_file
(){
newid
=
'new_'
+
parseFloat
((
new
Date
().
getTime
()
+
''
).
slice
(
7
))
+
Math
.
round
(
Math
.
random
()
*
100
);
input
=
'<input type="file" id="hasil-file-'
+
newid
+
'" class="hasil-fileChanged" accept="application/pdf,.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel, image/gif, image/jpeg">'
;
var
data
=
{
id_rinci_temuan
:
newid
,
input
:
input
};
var
grid
=
$
(
this
);
$
(
this
).
jqGrid
(
'restoreRow'
,
last_hasil
);
$
(
this
).
jqGrid
(
'addRowData'
,
newid
,
data
);
last_hasil
=
newid
;
}
function
dblClickaudit
(
id
,
irow
,
icol
,
e
)
{
e
.
stopPropagation
();
edit_row
.
call
(
this
,
id
);
}
function
aksiFormat
(
cellvalue
,
options
,
rowObject
){
return
'<button type="button" title="unggah dokumen" class="uploadfiles" ><i class="icon-upload"></i></button>'
;
}
function
linkFormat
(
cellvalue
,
options
,
rowObject
){
if
(
cellvalue
)
return
'<a href="
<?php
echo
base_url
(
$modul
)
?>
/preview/'
+
cellvalue
+
'" style="padding: 0px 2px 0px 2px; text-decoration: underline" onClick="return false;" class="view_file">'
+
cellvalue
+
'</a>'
;
else
return
''
;
}
function
edit_row
(
id
)
{
if
(
!
App
.
canEdit
())
return
;
var
row
=
$
(
this
).
jqGrid
(
'getRowData'
,
id
);
...
...
@@ -238,15 +281,15 @@
}
function
before_save
(
opt
,
id
)
{
jenis_temuan
=
$
(
'#'
+
id
+
'_jenis_temuan
'
).
val
();
rekomendasi
=
$
(
'#'
+
id
+
'_rekomendasi
'
).
val
();
deskripsi
=
$
(
'#'
+
id
+
'_deskripsi'
).
val
();
if
(
jenis_temuan
==
''
||
deskripsi
==
''
){
if
(
rekomendasi
==
''
||
deskripsi
==
''
){
show_warning
(
'Silakan lengkapi semua isian terlebih dahulu.'
,
'Perhatian'
);
return
false
;
}
$
(
'#'
+
id
+
'_
jenis_temuan
'
).
select2
(
'destroy'
);
$
(
'#'
+
id
+
'_
rekomendasi
'
).
select2
(
'destroy'
);
}
function
after_restore
()
{
...
...
@@ -255,7 +298,7 @@
function
onEditaudit
(
id
)
{
if
(
!
App
.
canEdit
())
return
;
$
(
'#'
+
id
+
'_
jenis_temuan
'
).
focus
();
$
(
'#'
+
id
+
'_
rekomendasi
'
).
focus
();
}
function
del_row
(
id
)
{
...
...
@@ -270,11 +313,78 @@
});
};
$
(
'body'
).
on
(
'click'
,
'.uploadfiles'
,
(
function
(){
event
.
preventDefault
();
$
(
"#hasil-file-"
+
last_hasil
+
""
).
click
();
}));
grd_hasil
.
on
(
'change'
,
$
(
"#hasil-file-"
+
last_hasil
),
(
function
(){
event
.
preventDefault
();
uploadNow
(
'hasil'
,
$
(
"#hasil-file-"
+
last_hasil
)[
0
].
files
[
0
],
last_hasil
,
'hasil'
);
}));
grd_hasil
.
on
(
'click'
,
'.view_file'
,
(
function
(){
var
url
=
$
(
this
).
attr
(
'href'
);
window
.
open
(
url
,
'_blank'
);
}));
function
uploadNow
(
type
,
file
,
idx
,
tipe
){
var
formData
=
new
FormData
();
formData
.
append
(
type
,
file
);
$
.
ajax
({
url
:
'
<?php
echo
base_url
()
.
$modul
;
?>
/upload'
,
data
:
formData
,
type
:
'POST'
,
dataType
:
'json'
,
cache
:
false
,
contentType
:
false
,
processData
:
false
,
beforeSend
:
function
(){
},
success
:
function
(
res
){
grd_hasil
.
jqGrid
(
'setRowData'
,
idx
,
{
'filename'
:
res
.
filename
,
'realname'
:
res
.
realname
});
show_info
(
'Dokumen berhasil diunggah.'
);
},
error
:
function
(
res
){
show_error
(
'Dokumen gagal diunggah.'
);
}
});
}
function
del_file
(
id
){
var
grid
=
$
(
this
),
question
=
'Hapus dari daftar ?'
,
row
=
grid
.
jqGrid
(
'getRowData'
,
id
);
confirmation
(
question
).
then
(
function
(
answer
)
{
if
(
!
answer
)
return
;
purge_hasil
.
push
(
id
);
grid
.
jqGrid
(
'delRowData'
,
id
);
$
.
ajax
({
url
:
'
<?php
echo
base_url
(
$modul
)
?>
/hapus_file'
,
type
:
'post'
,
dataType
:
'json'
,
data
:
{
id
:
id
,
nama_file
:
row
.
filename
},
success
:
function
(
res
,
xhr
)
{
if
(
res
.
isSuccess
){
show_info
(
res
.
message
);
}
else
{
show_error
(
res
.
message
,
'Gagal'
);
}
}
});
})
}
function
initselect3
(
el
){
var
oid
=
el
.
id
;
$
(
el
).
select2
({
ajax
:
{
url
:
"
<?php
echo
base_url
()
?>
pilih/
jenis_temuan
"
,
url
:
"
<?php
echo
base_url
()
?>
pilih/
pilih_rekomendasi
"
,
type
:
'POST'
,
dataType
:
'json'
,
quietMillis
:
200
,
...
...
@@ -285,7 +395,7 @@
return
{
results
:
data
.
results
}
},
},
placeholder
:
'Pilih
Jenis Temuan
'
,
placeholder
:
'Pilih
Rekomendasi
'
,
allowClear
:
true
,
openOnEnter
:
false
,
dropdownAutoWidth
:
true
,
...
...
@@ -297,7 +407,7 @@
});
$
(
el
).
on
(
'change'
,
function
(
e
){
var
ele
=
[
{
id
:
"id_
jns"
,
nama
:
"jenis_temuan
"
},
{
id
:
"id_
rekomendasi"
,
nama
:
"rekomendasi
"
},
];
var
idx
=
e
.
target
.
id
;
// apply selection to grid element
...
...
@@ -315,7 +425,7 @@
});
$
(
el
).
on
(
'select2-removed'
,
function
(
e
){
var
ele
=
[
{
id
:
"id_
jns"
,
nama
:
"jenis_temuan
"
},
{
id
:
"id_
rekomendasi"
,
nama
:
"rekomendasi
"
},
];
var
idx
=
e
.
target
.
id
;
...
...
@@ -343,13 +453,6 @@
return
'<div>'
+
res
.
text
+
'</div>'
;
}
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
;
}
}
ko
.
validation
.
init
({
insertMessages
:
false
,
decorateElement
:
true
,
...
...
@@ -363,6 +466,7 @@
self
.
akses_level
=
ko
.
observable
(
<?php
echo
isset
(
$akses
)
?
$akses
:
0
?>
);
self
.
id
=
ko
.
observable
(
<?php
echo
isset
(
$data
[
'id_temuan_jenis'
])
?
$data
[
'id_temuan_jenis'
]
:
0
?>
);
self
.
id_surat
=
ko
.
observable
(
<?php
echo
isset
(
$data
[
'id_surat'
])
?
$data
[
'id_surat'
]
:
0
?>
);
self
.
id_ref_temuan
=
ko
.
observable
(
<?php
echo
isset
(
$data
[
'id_ref_temuan'
])
?
$data
[
'id_ref_temuan'
]
:
0
?>
);
self
.
nomor_surat
=
ko
.
observable
(
<?php
echo
isset
(
$data
[
'nomor'
])
?
json_encode
(
$data
[
'nomor'
])
:
"''"
?>
)
.
extend
({
...
...
@@ -383,10 +487,18 @@
}
});
self
.
jns_tugas
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'id_
jns_penugasan'
])
?
$data
[
'id_jns
_penugasan'
]
:
''
?>
'
);
self
.
jns_tugas
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'id_
rekomendasi_penugasan'
])
?
$data
[
'id_rekomendasi
_penugasan'
]
:
''
?>
'
);
self
.
nama_jns_tugas
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'jenis_penugasan'
])
?
$data
[
'jenis_penugasan'
]
:
''
?>
'
);
self
.
jns_periksa
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'id_
jns_pemeriksaan'
])
?
$data
[
'id_jns
_pemeriksaan'
]
:
''
?>
'
);
self
.
jns_periksa
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'id_
rekomendasi_pemeriksaan'
])
?
$data
[
'id_rekomendasi
_pemeriksaan'
]
:
''
?>
'
);
self
.
nama_periksa
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'jenis_pemeriksaan'
])
?
$data
[
'jenis_pemeriksaan'
]
:
''
?>
'
);
self
.
rekomendasi
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'jenis_temuan'
])
?
$data
[
'jenis_temuan'
]
:
''
?>
'
);
self
.
judul
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'judul'
])
?
$data
[
'judul'
]
:
''
?>
'
);
self
.
deskripsi
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'deskripsi'
])
?
$data
[
'deskripsi'
]
:
''
?>
'
);
self
.
kriteria
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'kriteria'
])
?
$data
[
'kriteria'
]
:
''
?>
'
);
self
.
sebab
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'sebab'
])
?
$data
[
'sebab'
]
:
''
?>
'
);
self
.
akibat
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'akibat'
])
?
$data
[
'akibat'
]
:
''
?>
'
);
self
.
tanggapan
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'tanggapan'
])
?
$data
[
'tanggapan'
]
:
''
?>
'
);
self
.
penugasan
=
ko
.
observable
(
'
<?php
echo
isset
(
$data
[
'penugasan'
])
?
$data
[
'penugasan'
]
:
''
?>
'
);
self
.
mode
=
ko
.
computed
(
function
()
{
return
self
.
id
()
>
0
?
'edit'
:
'new'
;
...
...
@@ -431,9 +543,11 @@
App
.
nama_jns_tugas
(
rs
.
jns_tgs
);
App
.
jns_periksa
(
rs
.
id_prs
);
App
.
nama_periksa
(
rs
.
jns_prs
);
App
.
tgl
(
rs
.
tanggal_surat
);
App
.
penugasan
(
rs
.
penugasan
);
$
(
'#grd_temuan'
).
jqGrid
(
'setGridParam'
,
{
'url'
:
'
<?php
echo
base_url
()
.
$modul
;
?>
/data_kkp/'
+
App
.
id_surat
(),
'datatype'
:
'json'
});
$
(
'#grd_temuan'
).
trigger
(
'reloadGrid'
);
//
$('#grd_temuan').jqGrid('setGridParam', {'url': '
<?php
echo
base_url
()
.
$modul
;
?>
/data_kkp/
' + App.id_surat(), '
datatype
': '
json
'});
//
$('
#
grd_temuan
').trigger('
reloadGrid
');
});
}
...
...
@@ -474,10 +588,12 @@
var
$frm
=
$
(
'#frm'
),
data
=
JSON
.
parse
(
ko
.
toJSON
(
App
));
data_rinci
=
$
(
'#grd_temuan'
).
jqGrid
(
'getRowData'
),
rincian
=
$
.
grep
(
data_rinci
,
function
(
e
){
return
isNaN
(
e
.
lvl
)
||
parseInt
(
e
.
lvl
)
==
0
});
data
[
'rincian'
]
=
JSON
.
stringify
(
rincian
);
//data['rincian'] = JSON.stringify($('#grd_temuan').jqGrid('getRowData'));
//rincian = $.grep(data_rinci, function(e){ return isNaN(e.lvl) || parseInt(e.lvl) == 0 });
//data['rincian'] = JSON.stringify(rincian);
data
[
'rincian'
]
=
JSON
.
stringify
(
$
(
'#grd_temuan'
).
jqGrid
(
'getRowData'
));
data
[
'data_hasil'
]
=
JSON
.
stringify
(
$
(
'#grd_hasil'
).
jqGrid
(
'getRowData'
));
data
[
'purge'
]
=
purge
;
data
[
'purge_hasil'
]
=
purge_hasil
;
App
.
processing
(
true
);
$
.
ajax
({
...
...
@@ -502,10 +618,13 @@
App
.
init_grid
=
function
()
{
var
grd_rinci
=
$
(
'#grd_temuan'
);
var
grd_hasil
=
$
(
'#grd_hasil'
);
if
(
App
.
id
()
>
0
)
{
grd_rinci
.
jqGrid
(
'setGridParam'
,
{
'url'
:
'
<?php
echo
base_url
()
.
$modul
;
?>
/rinci/'
+
App
.
id
(),
'datatype'
:
'json'
});
grd_rinci
.
jqGrid
(
'setGridParam'
,
{
'url'
:
'
<?php
echo
base_url
()
.
$modul
;
?>
/rinci/'
+
App
.
id
()
+
'/1'
,
'datatype'
:
'json'
});
grd_rinci
.
trigger
(
'reloadGrid'
);
grd_hasil
.
jqGrid
(
'setGridParam'
,
{
'url'
:
'
<?php
echo
base_url
()
.
$modul
;
?>
/rinci/'
+
App
.
id
()
+
'/2'
,
'datatype'
:
'json'
});
grd_hasil
.
trigger
(
'reloadGrid'
);
}
else
{
...
...
@@ -518,9 +637,9 @@
callback
(
data
);
}
App
.
query_jenis_
tugas
=
function
(
option
)
{
App
.
query_jenis_
periksa
=
function
(
option
)
{
$
.
ajax
({
url
:
"
<?php
echo
base_url
()
?>
pilih/jenis_
tugas
"
,
url
:
"
<?php
echo
base_url
()
?>
pilih/jenis_
pemeriksaan
"
,
type
:
'POST'
,
dataType
:
'json'
,
data
:
{
...
...
@@ -534,9 +653,9 @@
});
};
App
.
query_
jenis_periksa
=
function
(
option
)
{
App
.
query_
temuan
=
function
(
option
)
{
$
.
ajax
({
url
:
"
<?php
echo
base_url
()
?>
pilih/jenis_
pemeriksa
an"
,
url
:
"
<?php
echo
base_url
()
?>
pilih/jenis_
temu
an"
,
type
:
'POST'
,
dataType
:
'json'
,
data
:
{
...
...
@@ -550,10 +669,6 @@
});
};
App
.
formatPejabat
=
function
(
res
)
{
return
'<div><strong>'
+
res
.
text
+
'</strong></div><div style="border-bottom:1px solid #ccc">'
+
res
.
jabatan
+
'</div>'
;
}
ko
.
applyBindings
(
App
);
setTimeout
(
function
()
{
App
.
init_grid
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment