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
d0aa8a63
Commit
d0aa8a63
authored
Jun 21, 2024
by
Deddy Vita Kurniawan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* create modul Import_surat
parent
d741e1fe
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
763 additions
and
0 deletions
+763
-0
import_surat.php
...ication/modules/import_surat/controllers/import_surat.php
+403
-0
import_surat_model.php
...cation/modules/import_surat/models/import_surat_model.php
+119
-0
import_surat_form.php
application/modules/import_surat/views/import_surat_form.php
+241
-0
validNo.png
assets/img/validNo.png
+0
-0
validYes.png
assets/img/validYes.png
+0
-0
No files found.
application/modules/import_surat/controllers/import_surat.php
0 → 100644
View file @
d0aa8a63
<?php
if
(
!
defined
(
'BASEPATH'
))
exit
(
'No direct script access allowed'
);
class
Import_surat
extends
Userpage_Controller
{
var
$last_perubahan_kegiatan
;
var
$last_perubahan_rekening
;
public
function
__construct
()
{
parent
::
__construct
();
$this
->
modul_name
=
'import_surat'
;
$this
->
modul_display
=
'Import Data Surat Penugasan'
;
$this
->
load
->
model
(
'import_surat_model'
,
'data_model'
);
date_default_timezone_set
(
'Asia/Jakarta'
);
$this
->
load
->
library
(
'excel'
);
}
public
function
index
()
{
$this
->
load
->
model
(
'auth/login_model'
,
'auth'
);
$data
[
'breadcrumbs'
]
=
$this
->
modul_display
;
$data
[
'modul_display'
]
=
$this
->
modul_display
;
$data
[
'modul'
]
=
$this
->
modul_name
;
$data
[
'akses'
]
=
$this
->
auth
->
get_level_akses
(
$this
->
uri
->
slash_segment
(
1
));
$data
[
'tahun'
]
=
$this
->
tahun
;
$data
[
'get_all_satker'
]
=
$this
->
data_model
->
get_all_pejabat
();
$data
[
'status'
]
=
$this
->
status
;
$data
[
'main_content'
]
=
'import_surat_form'
;
$this
->
load
->
view
(
'layout/template'
,
$data
);
}
function
ambil_tahun
()
{
$q
=
$this
->
input
->
post
(
'q'
);
$req_param
=
array
(
"q"
=>
$q
,
);
$result
=
$this
->
data_model
->
getTahunSelect
(
$req_param
);
$response
=
(
object
)
NULL
;
$response
->
results
=
array
();
if
(
$result
){
for
(
$i
=
0
;
$i
<
count
(
$result
);
$i
++
){
$response
->
results
[]
=
array
(
'id'
=>
$result
[
$i
][
'TAHUN'
],
'text'
=>
$result
[
$i
][
'TAHUN'
],
);
}
}
$response
->
sql
=
$this
->
db
->
queries
;
echo
json_encode
(
$response
);
}
function
ambil_status
()
{
$q
=
$this
->
input
->
post
(
'q'
);
$tahun
=
$this
->
input
->
post
(
'tahun'
);
$req_param
=
array
(
"q"
=>
$q
,
"tahun"
=>
$tahun
,
);
$result
=
$this
->
data_model
->
getStatusSelect
(
$req_param
);
$response
=
(
object
)
NULL
;
$response
->
results
=
array
();
if
(
$result
){
for
(
$i
=
0
;
$i
<
count
(
$result
);
$i
++
){
$response
->
results
[]
=
array
(
'id'
=>
$result
[
$i
][
'STATUS'
],
'text'
=>
$result
[
$i
][
'STATUS'
],
);
}
}
$response
->
sql
=
$this
->
db
->
queries
;
echo
json_encode
(
$response
);
}
function
validasi_upload
()
{
if
(
!
in_array
(
pathinfo
(
$_FILES
[
"file"
][
"name"
],
PATHINFO_EXTENSION
),
array
(
'xlsx'
,
'xls'
,
'csv'
)))
return
'Hanya file excel yang diperbolehkan untuk diunggah'
;
else
return
TRUE
;
}
public
function
do_upload
()
{
$this
->
load
->
helper
(
'file'
);
$response
=
(
object
)
NULL
;
$path
=
$this
->
data_model
->
path
;
if
(
!
file_exists
(
$path
))
{
mkdir
(
'uploads'
,
0777
,
true
);
}
if
(
isset
(
$_FILES
[
"file"
]))
{
if
(
$this
->
validasi_upload
()
===
TRUE
)
{
if
(
!
is_array
(
$_FILES
[
"file"
][
"name"
]))
//single file
{
$filename
=
$_FILES
[
"file"
][
"name"
];
$ext
=
pathinfo
(
$_FILES
[
"file"
][
"name"
],
PATHINFO_EXTENSION
);
//$newfilename = basename($filename, $ext) . '_' . date('Y_m_d_H_i_s') . '.'.$ext;
$newfilename
=
date
(
'Y_m_d_H_i_s'
)
.
'.'
.
$ext
;
if
(
$move
=
move_uploaded_file
(
$_FILES
[
"file"
][
"tmp_name"
],
$path
.
$newfilename
)
)
{
$response
->
isSuccess
=
TRUE
;
$response
->
realname
=
$filename
;
$response
->
name
=
$newfilename
;
}
else
{
$response
->
isSuccess
=
FALSE
;
$response
->
message
=
'File gagal diunggah'
;
}
}
}
else
{
$response
->
isSuccess
=
FALSE
;
$response
->
message
=
$this
->
validasi_upload
();
}
}
echo
json_encode
(
$response
);
}
public
function
proses
()
{
$response
=
(
object
)
NULL
;
$this
->
load
->
model
(
'auth/login_model'
,
'auth'
);
$this
->
load
->
helper
(
'path'
);
$akses
=
$this
->
auth
->
get_level_akses
(
$this
->
uri
->
slash_segment
(
1
));
ini_set
(
'max_execution_time'
,
0
);
ini_set
(
'memory_limit'
,
'2048M'
);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$file_xls
=
$this
->
input
->
post
(
'file_xls'
);
$data
=
array
();
$j
=
0
;
$this
->
data_model
->
get_all_satker
();
$this
->
data_model
->
get_all_pejabat
();
$this
->
data_model
->
get_all_periksa
();
$cnt_error_surat
=
$cnt_success_surat
=
$cnt_unsuccess_surat
=
$last_id_form_surat
=
0
;
$targetFile
=
$this
->
data_model
->
path
.
'/'
.
$file_xls
;
if
(
!
file_exists
(
$targetFile
)
)
return
'File Excel tidak ditemukan'
;
$object
=
PHPExcel_IOFactory
::
load
(
$targetFile
);
$sheet
=
$object
->
getActiveSheet
()
->
toArray
(
null
,
true
,
true
,
true
);
$arrayCount
=
count
(
$sheet
);
//die(print_r($arrayCount));
for
(
$i
=
2
;
$i
<=
$arrayCount
;
$i
++
)
{
if
(
$sheet
[
$i
][
"A"
]
==
''
)
continue
;
$tahun
=
utf8_encode
(
substr
(
$sheet
[
$i
][
"B"
],
-
4
));
$nomor
=
utf8_encode
(
trim
(
$sheet
[
$i
][
"A"
]));
$tanggal_surat
=
date_format
(
date_create
(
utf8_encode
(
trim
(
$sheet
[
$i
][
"B"
]))),
"Y-m-d"
);
$perpanjangan
=
'T'
;
$penugasan
=
utf8_encode
(
trim
(
$sheet
[
$i
][
"C"
]));
$sasaran
=
" "
;
$periode_diaudit
=
" "
;
$id_jns_penugasan
=
1
;
$id_jns_pemeriksaan
=
array_search
(
strtoupper
(
utf8_encode
(
trim
(
$sheet
[
$i
][
"D"
]))),
$this
->
data_model
->
list_periksa
);
$pkpt
=
0
;
$tanggal_mulai
=
date_format
(
date_create
(
utf8_encode
(
trim
(
$sheet
[
$i
][
"F"
]))),
"Y-m-d"
);
$tanggal_selesai
=
date_format
(
date_create
(
utf8_encode
(
trim
(
$sheet
[
$i
][
"G"
]))),
"Y-m-d"
);
$satker
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"E"
])));
$id_satker_auditee
=
array_search
(
strtoupper
(
$satker
),
$this
->
data_model
->
list_satker
);
$periksa
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"H"
])));
$penanggung_jawab
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"I"
])));
$dalnis
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"K"
])));
$id_penanggung_jawab
=
array_search
(
strtoupper
(
$penanggung_jawab
),
$this
->
data_model
->
list_pejabat
);
$id_pejabat_spi_ttd
=
array_search
(
strtoupper
(
$periksa
),
$this
->
data_model
->
list_pejabat
);
$id_pejabat_spi_tugas
=
array_search
(
strtoupper
(
$periksa
),
$this
->
data_model
->
list_pejabat
);
$id_dalnis
=
array_search
(
strtoupper
(
$dalnis
),
$this
->
data_model
->
list_pejabat
);
$ketua
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"L"
])));
$id_ketua
=
array_search
(
strtoupper
(
$ketua
),
$this
->
data_model
->
list_pejabat
);
$anggota_1
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"M"
])));
$id_anggota_1
=
array_search
(
strtoupper
(
$anggota_1
),
$this
->
data_model
->
list_pejabat
);
$anggota_2
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"N"
])));
$id_anggota_2
=
array_search
(
strtoupper
(
$anggota_2
),
$this
->
data_model
->
list_pejabat
);
$anggota_3
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"O"
])));
$id_anggota_3
=
array_search
(
strtoupper
(
$anggota_3
),
$this
->
data_model
->
list_pejabat
);
$anggota_4
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"P"
])));
$id_anggota_4
=
array_search
(
strtoupper
(
$anggota_4
),
$this
->
data_model
->
list_pejabat
);
$anggota_5
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"Q"
])));
$id_anggota_5
=
array_search
(
strtoupper
(
$anggota_5
),
$this
->
data_model
->
list_pejabat
);
$anggota_6
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"R"
])));
$id_anggota_6
=
array_search
(
strtoupper
(
$anggota_6
),
$this
->
data_model
->
list_pejabat
);
$anggota_7
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"S"
])));
$id_anggota_7
=
array_search
(
strtoupper
(
$anggota_7
),
$this
->
data_model
->
list_pejabat
);
$anggota_8
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
utf8_encode
(
trim
(
$sheet
[
$i
][
"T"
])));
$id_anggota_8
=
array_search
(
strtoupper
(
$anggota_8
),
$this
->
data_model
->
list_pejabat
);
//die(print_r($tanggal_selesai));
//$jumlah_hari = date_diff(date_create(utf8_encode(trim($sheet[$i]["G"]))), date_create(utf8_encode(trim($sheet[$i]["F"])))); $jumlah_hari+=1;
$jumlah_hari
=
date_create
(
utf8_encode
(
trim
(
$sheet
[
$i
][
"F"
])))
->
diff
(
date_create
(
utf8_encode
(
trim
(
$sheet
[
$i
][
"G"
]))))
->
format
(
'%R%a'
);
$jumlah_hari
+=
1
;
//die(print_r($jumlah_hari));
if
(
$tahun
<>
$this
->
tahun
)
continue
;
if
(
!
$anggota_1
)
continue
;
if
(
!
$id_satker_auditee
)
continue
;
//surat_penugasan
$this
->
data_model
->
data_surat_penugasan
=
array
(
'TAHUN'
=>
$tahun
,
'NOMOR'
=>
$nomor
,
'TANGGAL_SURAT'
=>
$tanggal_surat
,
'PERPANJANGAN'
=>
$perpanjangan
,
'PENUGASAN'
=>
$penugasan
,
'SASARAN'
=>
$sasaran
,
'PERIODE_DIAUDIT'
=>
$periode_diaudit
,
'ID_JNS_PENUGASAN'
=>
$id_jns_penugasan
,
'ID_JNS_PEMERIKSAAN'
=>
$id_jns_pemeriksaan
,
'PKPT'
=>
$pkpt
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'TANGGAL_LAPORAN'
=>
$tanggal_selesai
,
'ID_PEJABAT_SPI_TUGAS'
=>
$id_pejabat_spi_tugas
,
'ID_PEJABAT_SPI_TTD'
=>
$id_pejabat_spi_ttd
,
'ID_SATKER_AUDITEE'
=>
$id_satker_auditee
,
'JML_HARI'
=>
$jumlah_hari
,
);
//surat_penugasan_tim
$this
->
data_model
->
data_surat_penugasan_tim
=
[];
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
1
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
ceil
(
$jumlah_hari
/
2
),
'ID_PEJABAT_SPI'
=>
$id_penanggung_jawab
,
'ID_JAB_TIM_AUDIT'
=>
1
);
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
2
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
ceil
(
$jumlah_hari
/
2
),
'ID_PEJABAT_SPI'
=>
$id_pejabat_spi_ttd
,
'ID_JAB_TIM_AUDIT'
=>
2
);
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
3
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
ceil
(
$jumlah_hari
/
2
),
'ID_PEJABAT_SPI'
=>
$id_dalnis
,
'ID_JAB_TIM_AUDIT'
=>
3
);
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
4
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
$jumlah_hari
,
'ID_PEJABAT_SPI'
=>
$id_ketua
,
'ID_JAB_TIM_AUDIT'
=>
4
);
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
5
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
$jumlah_hari
,
'ID_PEJABAT_SPI'
=>
$id_anggota_1
,
'ID_JAB_TIM_AUDIT'
=>
5
);
if
(
$anggota_2
){
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
6
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
$jumlah_hari
,
'ID_PEJABAT_SPI'
=>
$id_anggota_2
,
'ID_JAB_TIM_AUDIT'
=>
5
);
}
if
(
$anggota_3
){
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
7
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
$jumlah_hari
,
'ID_PEJABAT_SPI'
=>
$id_anggota_3
,
'ID_JAB_TIM_AUDIT'
=>
5
);
}
if
(
$anggota_4
){
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
8
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
$jumlah_hari
,
'ID_PEJABAT_SPI'
=>
$id_anggota_4
,
'ID_JAB_TIM_AUDIT'
=>
5
);
}
if
(
$anggota_5
){
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
9
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
$jumlah_hari
,
'ID_PEJABAT_SPI'
=>
$id_anggota_5
,
'ID_JAB_TIM_AUDIT'
=>
5
);
}
if
(
$anggota_6
){
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
10
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
$jumlah_hari
,
'ID_PEJABAT_SPI'
=>
$id_anggota_6
,
'ID_JAB_TIM_AUDIT'
=>
5
);
}
if
(
$anggota_7
){
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
10
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
$jumlah_hari
,
'ID_PEJABAT_SPI'
=>
$id_anggota_7
,
'ID_JAB_TIM_AUDIT'
=>
5
);
}
if
(
$anggota_8
){
$this
->
data_model
->
data_surat_penugasan_tim
[]
=
array
(
'URUT'
=>
11
,
'TANGGAL_MULAI'
=>
$tanggal_mulai
,
'TANGGAL_SELESAI'
=>
$tanggal_selesai
,
'JML_HARI'
=>
$jumlah_hari
,
'ID_PEJABAT_SPI'
=>
$id_anggota_8
,
'ID_JAB_TIM_AUDIT'
=>
5
);
}
//data_rinci_tanggal_aktif
$this
->
data_model
->
data_rinci_tanggal_aktif
=
[];
$begin
=
new
DateTime
(
$tanggal_mulai
);
$end
=
new
DateTime
(
$tanggal_selesai
);
$end
=
$end
->
modify
(
'+1 day'
);
$interval
=
new
DateInterval
(
'P1D'
);
$daterange
=
new
DatePeriod
(
$begin
,
$interval
,
$end
);
foreach
(
$daterange
as
$key
=>
$value
){
$this
->
data_model
->
data_rinci_tanggal_aktif
[]
=
array
(
'CHK_REK'
=>
1
,
'NO_URUT'
=>
$key
+
1
,
'TANGGAL'
=>
$value
->
format
(
"Y-m-d"
)
);
}
$success_surat
=
$this
->
data_model
->
save_data_surat
();
if
(
$success_surat
)
{
$cnt_success_surat
+=
1
;
$id_surat
=
$this
->
data_model
->
id_surat
;
}
else
{
$cnt_unsuccess_surat
+=
1
;
continue
;
}
//usleep(6*1000000);
$j
+=
1
;
}
$response
->
isSuccess
=
TRUE
;
$response
->
message
=
'File Excel berhasil diimport'
;
$response
->
surat_success
=
$cnt_success_surat
;
$response
->
surat_failed
=
$cnt_unsuccess_surat
;
$response
->
sql
=
$this
->
db
->
queries
;
echo
json_encode
(
$response
);
}
}
\ No newline at end of file
application/modules/import_surat/models/import_surat_model.php
0 → 100644
View file @
d0aa8a63
<?php
class
Import_surat_model
extends
Base_Model
{
var
$path
;
var
$list_satker
=
[];
var
$list_pejabat
=
[];
var
$list_periksa
=
[];
var
$data_surat_penugasan
;
var
$data_surat_penugasan_tim
=
[];
var
$data_rinci_tanggal_aktif
=
[];
var
$id_surat
;
function
__construct
()
{
parent
::
__construct
();
$this
->
path
=
'./uploads/'
;
}
function
get_all_satker
()
{
$this
->
db
->
select
(
'r.ID_SATKER, r.NAMA_SATKER'
)
->
from
(
'ref_satker r'
);
$result
=
$this
->
db
->
get
()
->
result_array
();
for
(
$i
=
0
;
$i
<
count
(
$result
);
$i
++
){
$nama_satker
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
$result
[
$i
][
'NAMA_SATKER'
]);
$this
->
list_satker
[
$result
[
$i
][
'ID_SATKER'
]]
=
strtoupper
(
$nama_satker
);
}
return
$this
->
list_satker
;
}
function
get_all_pejabat
()
{
$this
->
db
->
select
(
'r.ID_PEJABAT_SPI, r.NAMA'
)
->
from
(
'ref_pejabat_spi r'
);
$result
=
$this
->
db
->
get
()
->
result_array
();
for
(
$i
=
0
;
$i
<
count
(
$result
);
$i
++
){
$nama_pejabat
=
preg_replace
(
'~[\\\\/:*?"<>|+-,. ]~'
,
''
,
$result
[
$i
][
'NAMA'
]);
$this
->
list_pejabat
[
$result
[
$i
][
'ID_PEJABAT_SPI'
]]
=
strtoupper
(
$nama_pejabat
);
}
return
$this
->
list_pejabat
;
}
function
get_all_periksa
()
{
$this
->
db
->
select
(
'r.ID_JNS, r.KODE'
)
->
from
(
'ref_jns_pemeriksaan r'
);
$result
=
$this
->
db
->
get
()
->
result_array
();
for
(
$i
=
0
;
$i
<
count
(
$result
);
$i
++
){
$kode
=
preg_replace
(
'~[\\\\/:*?"<>|+-., ]~'
,
''
,
$result
[
$i
][
'KODE'
]);
$this
->
list_periksa
[
$result
[
$i
][
'ID_JNS'
]]
=
strtoupper
(
$kode
);
}
return
$this
->
list_periksa
;
}
function
save_data_surat
()
{
$this
->
db
->
trans_begin
();
try
{
$this
->
id_surat
=
$this
->
insert_surat
();
$this
->
save_detail_surat
();
}
catch
(
Exception
$e
){
//TODO : log error to file
}
if
(
$this
->
db
->
trans_status
()
===
FALSE
)
{
$this
->
last_error_id
=
$this
->
db
->
_error_number
();
$this
->
last_error_message
=
$this
->
db
->
_error_message
();
$this
->
db
->
trans_rollback
();
return
FALSE
;
}
$this
->
db
->
trans_commit
();
return
TRUE
;
}
function
insert_surat
()
{
$this
->
db
->
insert
(
'surat_penugasan'
,
$this
->
data_surat_penugasan
);
$this
->
check_trans_status
(
'insert surat_penugasan failed'
);
$this
->
db
->
select_max
(
'ID_SURAT'
)
->
from
(
'surat_penugasan'
);
$res
=
$this
->
db
->
get
()
->
row_array
();
$id_surat
=
$res
[
'ID_SURAT'
]
?
$res
[
'ID_SURAT'
]
:
1
;
return
$id_surat
;
}
function
save_detail_surat
(){
$this
->
insert_audit
();
$this
->
insert_tanggal_aktif
();
}
function
insert_audit
()
{
for
(
$i
=
0
;
$i
<
count
(
$this
->
data_surat_penugasan_tim
);
$i
++
)
{
$this
->
data_surat_penugasan_tim
[
$i
][
'ID_SURAT'
]
=
$this
->
id_surat
;
$this
->
db
->
insert
(
'surat_penugasan_tim'
,
$this
->
data_surat_penugasan_tim
[
$i
]);
$this
->
check_trans_status
(
'insert surat_penugasan_tim failed'
);
}
}
function
insert_tanggal_aktif
()
{
for
(
$i
=
0
;
$i
<
count
(
$this
->
data_rinci_tanggal_aktif
);
$i
++
)
{
$this
->
data_rinci_tanggal_aktif
[
$i
][
'ID_SURAT'
]
=
$this
->
id_surat
;
$this
->
db
->
insert
(
'rinci_tanggal_aktif'
,
$this
->
data_rinci_tanggal_aktif
[
$i
]);
$this
->
check_trans_status
(
'insert rinci_tanggal_aktif failed'
);
}
}
}
\ No newline at end of file
application/modules/import_surat/views/import_surat_form.php
0 → 100644
View file @
d0aa8a63
<script
type=
"text/javascript"
src=
"
<?php
echo
base_url
()
?>
assets/js/jquery.form.js"
></script>
<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"
>
<form
id=
"frm"
method=
"post"
action=
"
<?php
echo
base_url
();
?>
import_surat/proses"
enctype=
"multipart/form-data"
>
<div
class=
"controls-row"
>
<div
class=
"control-group pull-left"
data-bind=
"validationElement: file_xls"
>
<label
class=
"control-label"
for=
"file_xls"
>
Upload File Surat Penugasan (xls)
</label>
<div
class=
"add-on"
id=
"fileuploader"
><i
class=
"icon-folder-open"
></i>
Upload
</div>
</div>
</div>
<br/>
<br/>
<h4
data-bind=
"visible: showMessage && !processing()"
>
File Excel
</h4>
<ul
data-bind=
"foreach: file_xls"
>
<li>
<a
href=
"#"
data-bind=
"visible: $parent.canSave && !$parent.processing(), click: $parent.removeFileXML"
title=
"Hapus"
><i
class=
"icon-trash"
></i></a>
<span
data-bind=
"text: realname"
>
</span>
<img
data-bind=
"visible: loading"
title=
"Data sedang proses import"
src=
"
<?php
echo
base_url
()
?>
assets/img/select2-spinner.gif"
>
<img
data-bind=
"visible: success"
title=
"Data berhasil diimport"
src=
"
<?php
echo
base_url
()
?>
assets/img/validYes.png"
>
<img
data-bind=
"visible: failed"
title=
"Data gagal diimport"
src=
"
<?php
echo
base_url
()
?>
assets/img/validNo.png"
>
</li>
</ul>
<?php
//print_r($datax)
//die(print_r($datax));
//print_r($get_all_satker);
/* $tanggal_mulai = prepare_date('03/01/2024');
$tanggal_selesai = prepare_date('05/01/2024');
$begin = new DateTime($tanggal_mulai);
$end = new DateTime($tanggal_selesai);
$end = $end->modify( '+1 day' );
$interval = new DateInterval('P1D');
$daterange = new DatePeriod($begin, $interval ,$end);
foreach($daterange as $key => $value){
echo $key+1 . "<br>";
echo $value->format("Y-m-d") . "<br>";
} */
?>
<div
class=
"bottom-bar"
>
<button
type=
"button"
class=
"btn btn-primary"
data-bind=
"enable: canSave && !processing(), click: function(data, event){save(false, data, event) }, visible: canSave()"
/>
Import Surat Penugasan
</button>
</div>
</form>
<div
class=
"control-group well alert-info"
style=
"margin-top: 70px;"
data-bind=
"visible: showMessage"
>
<h4>
Import Surat Penugasan sudah selesai, dengan rincian sebagai berikut:
</h4>
<ul>
<li>
Data surat berhasil di impor sebanyak
<span
data-bind=
"text: surat_success"
></span>
data
</li>
<li>
Data surat gagal di impor sebanyak
<span
data-bind=
"text: surat_failed"
></span>
data
</li>
</ul>
</div>
</div>
<script>
var
fileCounter
=
0
,
fileIndeks
=
0
;
var
surat_success
=
surat_failed
=
0
;
$
(
document
).
ready
(
function
()
{
inisialisasi
();
$
(
"#fileuploader"
).
uploadFile
({
url
:
"
<?php
echo
base_url
()
?>
import_surat/do_upload"
,
fileName
:
"file"
,
uploadButtonClass
:
"btn"
,
doneButtonClass
:
"btn"
,
dragDropStr
:
""
,
multiple
:
true
,
returnType
:
"json"
,
//maxFileSize:"8388608",
allowedTypes
:
"xls,xlsx"
,
showFileCounter
:
false
,
showDone
:
false
,
showStatusAfterSuccess
:
false
,
abortStr
:
"Batal"
,
extErrorStr
:
"tidak diizinkan. Extensions yang diizinkan: "
,
sizeErrorStr
:
"tidak diizinkan. Max size: "
,
onSuccess
:
function
(
files
,
data
,
xhr
)
{
if
(
data
.
isSuccess
)
{
fileCounter
++
;
App
.
file_xls
.
push
(
new
file
(
data
.
realname
,
data
.
name
,
false
,
false
,
false
)
);
}
else
{
show_error
(
data
.
message
,
'Gagal'
);
}
}
});
});
function
proses_import
(
file
){
var
$frm
=
$
(
'#frm'
),
data
=
JSON
.
parse
(
ko
.
toJSON
(
App
));
data
[
'file_xls'
]
=
file
;
// loading: true
App
.
file_xls
.
replace
(
App
.
file_xls
()[
fileIndeks
],{
realname
:
App
.
file_xls
()[
fileIndeks
][
'realname'
],
name
:
file
,
loading
:
true
,
success
:
false
,
failed
:
false
}
);
$
.
ajax
({
url
:
$frm
.
attr
(
'action'
),
type
:
'post'
,
dataType
:
'json'
,
data
:
data
,
success
:
function
(
res
,
xhr
){
if
(
res
.
isSuccess
)
{
console
.
log
(
res
,
'res proses_import'
)
surat_success
=
surat_success
+
parseInt
(
res
.
surat_success
);
// surat yang berhasil diimport
surat_failed
=
surat_failed
+
parseInt
(
res
.
surat_failed
);
// surat gagal impor
App
.
surat_success
(
surat_success
);
App
.
surat_failed
(
surat_failed
);
// success: true
App
.
file_xls
.
replace
(
App
.
file_xls
()[
fileIndeks
],
{
realname
:
App
.
file_xls
()[
fileIndeks
][
'realname'
],
name
:
file
,
loading
:
false
,
success
:
true
,
failed
:
false
}
);
}
else
{
// failed: true
App
.
file_xls
.
replace
(
App
.
file_xls
()[
fileIndeks
],
{
realname
:
App
.
file_xls
()[
fileIndeks
][
'realname'
],
name
:
file
,
loading
:
false
,
success
:
false
,
failed
:
true
}
);
}
},
complete
:
function
(){
fileIndeks
++
;
if
(
fileIndeks
<
App
.
file_xls
().
length
)
{
proses_import
(
App
.
file_xls
()[
fileIndeks
][
'name'
]);
}
else
{
App
.
showMessage
(
true
);
}
}
});
}
ko
.
validation
.
init
({
insertMessages
:
false
,
decorateElement
:
true
,
errorElementClass
:
'error'
,
});
var
file
=
function
(
realname
,
name
,
loading
,
success
,
failed
)
{
this
.
realname
=
realname
;
this
.
name
=
name
;
this
.
loading
=
loading
;
this
.
success
=
success
;
this
.
failed
=
failed
;
}
var
ModelImportXML
=
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
.
file_xls
=
ko
.
observableArray
([])
.
extend
({
required
:
{
params
:
true
,
message
:
'File xml belum diupload'
}
});
self
.
removeFileXML
=
function
()
{
self
.
file_xls
.
remove
(
this
);
fileCounter
--
;
}
self
.
showMessage
=
ko
.
observable
(
false
);
self
.
surat_success
=
ko
.
observable
(
0
);
self
.
surat_failed
=
ko
.
observable
(
0
);
self
.
title
=
ko
.
computed
(
function
(){
return
self
.
modul_display
;
});
self
.
canSave
=
ko
.
computed
(
function
(){
return
self
.
akses_level
()
>=
3
;
});
self
.
errors
=
ko
.
validation
.
group
(
self
);
}
var
App
=
new
ModelImportXML
();
App
.
init_select
=
function
(
element
,
callback
){
var
data
=
{
'text'
:
$
(
element
).
attr
(
'data-init'
)};
callback
(
data
);
}
App
.
formatTahun
=
function
(
res
){
return
'<div>'
+
res
.
text
+
'</div>'
;
}
App
.
formValidation
=
function
(){
var
errmsg
=
[];
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
.
save
=
function
(){
if
(
!
App
.
formValidation
()){
return
}
App
.
processing
(
true
);
proses_import
(
App
.
file_xls
()[
fileIndeks
][
'name'
]);
}
ko
.
applyBindings
(
App
);
</script>
\ No newline at end of file
assets/img/validNo.png
0 → 100644
View file @
d0aa8a63
796 Bytes
assets/img/validYes.png
0 → 100644
View file @
d0aa8a63
840 Bytes
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