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

* create modul Import_surat

parent d741e1fe
<?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
<?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
<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
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