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
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
360 additions
and
0 deletions
+360
-0
import_surat.php
...ication/modules/import_surat/controllers/import_surat.php
+0
-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
This diff is collapsed.
Click to expand it.
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