Commit 56465a6d by Lalang Trendy Buana Committed by nurchamim

modul: bug import jadwal shift

status: selesai
keterangan: ketika import, hapus data temporary hanya berdasarkan id_company
parent ba85a5db
<?php <?php
defined('BASEPATH') OR exit('No direct script access allowed'); defined('BASEPATH') or exit('No direct script access allowed');
class Pengaturan_shift_import extends MY_Controller { class Pengaturan_shift_import extends MY_Controller
{
public function __construct(){ public function __construct()
{
parent::__construct(); parent::__construct();
$this->load->model(array('Pengaturan_shift_import_m', 'Pengaturan_shift_m')); $this->load->model(array('Pengaturan_shift_import_m', 'Pengaturan_shift_m'));
$this->load->library(array('PHPExcel/Excel', 'PHPExcel/PHPExcel', 'Uploadfile')); $this->load->library(array('PHPExcel/Excel', 'PHPExcel/PHPExcel', 'Uploadfile'));
$this->level_user = $this->session->userdata('level_user'); $this->level_user = $this->session->userdata('level_user');
$this->id_company = $this->session->userdata('id_company'); $this->id_company = $this->session->userdata('id_company');
$this->multi_cabang = $this->session->userdata('multi_cabang'); $this->multi_cabang = $this->session->userdata('multi_cabang');
$this->id_cabang = $this->session->userdata('id_cabang'); $this->id_cabang = $this->session->userdata('id_cabang');
$this->id_cabang_arr = $this->session->userdata('id_cabang_arr'); $this->id_cabang_arr = $this->session->userdata('id_cabang_arr');
$this->multi_departemen = $this->session->userdata('multi_departemen'); $this->multi_departemen = $this->session->userdata('multi_departemen');
$this->id_departemen = $this->session->userdata('id_departemen'); $this->id_departemen = $this->session->userdata('id_departemen');
$this->id_departemen_arr = $this->session->userdata('id_departemen_arr'); $this->id_departemen_arr = $this->session->userdata('id_departemen_arr');
$this->id_karyawan = $this->session->userdata('id_karyawan'); $this->id_karyawan = $this->session->userdata('id_karyawan');
} }
public function index(){ public function index()
$data['judul'] = 'Import Shift'; {
$data['aktif'] = 'pengaturan_shift'; $data['judul'] = 'Import Shift';
$data['aktif'] = 'pengaturan_shift';
$data['menu'] = $this->load->view('main_menu', $data, true); $data['menu'] = $this->load->view('main_menu', $data, true);
$data['content'] = $this->load->view('pengaturan/pengaturan_shift/import/home', $data, true); $data['content'] = $this->load->view('pengaturan/pengaturan_shift/import/home', $data, true);
$this->load->view('main_template', $data, false); $this->load->view('main_template', $data, false);
} }
public function form_template_import(){ public function form_template_import()
$this->load->view('pengaturan/pengaturan_shift/import/form_template_import'); {
} $this->load->view('pengaturan/pengaturan_shift/import/form_template_import');
}
public function view_data(){ public function view_data()
{
$this->load->config('datatables'); $this->load->config('datatables');
$this->load->helper('datatables'); $this->load->helper('datatables');
$ttl_periode = $this->Pengaturan_shift_import_m->getCountPeriodeShift(); $ttl_periode = $this->Pengaturan_shift_import_m->getCountPeriodeShift();
$data['ttl_periode'] = $ttl_periode; $data['ttl_periode'] = $ttl_periode;
if($ttl_periode > 0){ if ($ttl_periode > 0) {
$periode = $this->Pengaturan_shift_import_m->getPeriodeShift(); $periode = $this->Pengaturan_shift_import_m->getPeriodeShift();
$tgl_mulai = $periode->tgl_mulai; $tgl_mulai = $periode->tgl_mulai;
$tgl_selesai = $periode->tgl_selesai; $tgl_selesai = $periode->tgl_selesai;
$data['id_cabang'] = $this->Pengaturan_shift_import_m->getIdCabangShift(); $data['id_cabang'] = $this->Pengaturan_shift_import_m->getIdCabangShift();
$kolom_header = $this->__kolom_periode($tgl_mulai, $tgl_selesai, $data['id_cabang']); $kolom_header = $this->__kolom_periode($tgl_mulai, $tgl_selesai, $data['id_cabang']);
$data['kolom_header'] = $kolom_header; $data['kolom_header'] = $kolom_header;
$targets_libur = targets_libur($kolom_header['targets_libur']); $targets_libur = targets_libur($kolom_header['targets_libur']);
$data['targets_libur_left'] = implode(", ", $targets_libur['left']); $data['targets_libur_left'] = implode(", ", $targets_libur['left']);
$data['targets_libur_sisa'] = implode(", ", $targets_libur['sisa']); $data['targets_libur_sisa'] = implode(", ", $targets_libur['sisa']);
} else { } else {
$data['id_cabang'] = $this->Pengaturan_shift_import_m->getIdCabangPusat(); $data['id_cabang'] = $this->Pengaturan_shift_import_m->getIdCabangPusat();
} }
$this->load->view('pengaturan/pengaturan_shift/import/list_data',$data); $this->load->view('pengaturan/pengaturan_shift/import/list_data', $data);
} }
public function list_data(){ public function list_data()
$periode = $this->Pengaturan_shift_import_m->getPeriodeShift(); {
$tgl_mulai = $periode->tgl_mulai; $periode = $this->Pengaturan_shift_import_m->getPeriodeShift();
$tgl_selesai = $periode->tgl_selesai; $tgl_mulai = $periode->tgl_mulai;
$id_cabang = $this->input->post('id_cabang'); $tgl_selesai = $periode->tgl_selesai;
$kolom_header = $this->__kolom_periode($tgl_mulai, $tgl_selesai, $id_cabang); $id_cabang = $this->input->post('id_cabang');
$kolom_header = $this->__kolom_periode($tgl_mulai, $tgl_selesai, $id_cabang);
$data_shift = $this->Pengaturan_shift_import_m->getDataShift();
$data_shift = $this->Pengaturan_shift_import_m->getDataShift();
$list = $this->Pengaturan_shift_import_m->get_datatables();
$data = array(); $list = $this->Pengaturan_shift_import_m->get_datatables();
$no = $_POST['start']; $data = array();
foreach ($list as $field) { $no = $_POST['start'];
$no++; foreach ($list as $field) {
$row = array(); $no++;
$row[] = $no; $row = array();
$row[] = $field->nama_lengkap."<br><span class='font-size-xsmall'>".$field->nik."</span>"; $row[] = $no;
$row[] = $field->kode_cabang." - ".$field->nama_cabang; $row[] = $field->nama_lengkap . "<br><span class='font-size-xsmall'>" . $field->nik . "</span>";
$row[] = $field->kode_departemen." - ".$field->nama_departemen; $row[] = $field->kode_cabang . " - " . $field->nama_cabang;
$row[] = $field->kode_jabatan." - ".$field->nama_jabatan; $row[] = $field->kode_departemen . " - " . $field->nama_departemen;
$row[] = $field->kode_jabatan . " - " . $field->nama_jabatan;
foreach($kolom_header['data_tanggal'] as $header){
$tgl_shift = date_format(date_create($header['tanggal']),"Y-m-d"); foreach ($kolom_header['data_tanggal'] as $header) {
$kode_shift = $data_shift[$field->id_karyawan."-".$tgl_shift]["kode_shift"]; $tgl_shift = date_format(date_create($header['tanggal']), "Y-m-d");
$flag = $data_shift[$field->id_karyawan."-".$tgl_shift]["flag"]; $kode_shift = $data_shift[$field->id_karyawan . "-" . $tgl_shift]["kode_shift"];
$flag = $data_shift[$field->id_karyawan . "-" . $tgl_shift]["flag"];
if($flag == "2"){
if(!empty($kode_shift)){ if ($flag == "2") {
$class = "badge badge-warning"; if (!empty($kode_shift)) {
}else{ $class = "badge badge-warning";
$class = "badge badge-danger"; } else {
$kode_shift = $this->lang->line('data_kosong'); $class = "badge badge-danger";
} $kode_shift = $this->lang->line('data_kosong');
}
}else if($flag == "3"){
$class = "badge badge-warning"; } else if ($flag == "3") {
}else if($flag == "4"){ $class = "badge badge-warning";
$class = "badge badge-success"; } else if ($flag == "4") {
}else{ $class = "badge badge-success";
$class = ""; } else {
} $class = "";
}
$row[] = "<div class='".$class."'>".$kode_shift."</div>";
} $row[] = "<div class='" . $class . "'>" . $kode_shift . "</div>";
}
$data[] = $row;
} $data[] = $row;
}
$output = array("draw" => $_POST['draw'],
"recordsTotal" => $this->Pengaturan_shift_import_m->count_all(), $output = array(
"recordsFiltered" => $this->Pengaturan_shift_import_m->count_filtered(), "draw" => $_POST['draw'],
"data" => $data); "recordsTotal" => $this->Pengaturan_shift_import_m->count_all(),
"recordsFiltered" => $this->Pengaturan_shift_import_m->count_filtered(),
$output = __response($this->MY_response, $output); "data" => $data
);
echo json_encode($output);
} $output = __response($this->MY_response, $output);
private function __kolom_periode($tgl_mulai="-", $tgl_selesai="-", $id_cabang=0){ echo json_encode($output);
$this->load->config('excel'); }
$m_jam_kerja_libur = ["6", "7"]; private function __kolom_periode($tgl_mulai = "-", $tgl_selesai = "-", $id_cabang = 0)
{
$this->load->config('excel');
$m_jam_kerja_libur = ["6", "7"];
$m_libur_nasional = $this->Pengaturan_shift_m->m_libur_nasional($tgl_mulai, $tgl_selesai); $m_libur_nasional = $this->Pengaturan_shift_m->m_libur_nasional($tgl_mulai, $tgl_selesai);
$awal = date_create($tgl_mulai); $awal = date_create($tgl_mulai);
$akhir = date_create($tgl_selesai); $akhir = date_create($tgl_selesai);
$selisih = date_diff($akhir, $awal)->format("%a"); $selisih = date_diff($akhir, $awal)->format("%a");
$d = "d M"; $d = "d M";
$kolom = 5; $kolom = 5;
$akhir = date_create(date('Y-m-d', strtotime('+1 days ' . $tgl_selesai))); $akhir = date_create(date('Y-m-d', strtotime('+1 days ' . $tgl_selesai)));
$interval = DateInterval::createFromDateString('1 day'); $interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($awal, $interval, $akhir); $period = new DatePeriod($awal, $interval, $akhir);
$header = array(); $header = array();
foreach ($period as $dt) { foreach ($period as $dt) {
$Y_m_d = $dt->format("Y-m-d"); $Y_m_d = $dt->format("Y-m-d");
$temp = [ $temp = [
'hari' => indo_date($Y_m_d, "l"), 'hari' => indo_date($Y_m_d, "l"),
'tanggal' => $dt->format("d-m-Y"), 'tanggal' => $dt->format("d-m-Y"),
'libur' => false, 'libur' => false,
'warna' => '', 'warna' => '',
'warna_teks' => '' 'warna_teks' => ''
]; ];
if(in_array($dt->format("N"), $m_jam_kerja_libur) or in_array($Y_m_d, $m_libur_nasional)) { if (in_array($dt->format("N"), $m_jam_kerja_libur) or in_array($Y_m_d, $m_libur_nasional)) {
$temp['libur'] = true; $temp['libur'] = true;
$temp['warna'] = $this->config->item('warna_background_libur'); $temp['warna'] = $this->config->item('warna_background_libur');
$temp['warna_teks'] = $this->config->item('warna_teks_libur'); $temp['warna_teks'] = $this->config->item('warna_teks_libur');
$header['targets_libur'][] = $kolom; $header['targets_libur'][] = $kolom;
} }
$header['data_tanggal'][] = $temp; $header['data_tanggal'][] = $temp;
$kolom++; $kolom++;
} }
return $header; return $header;
} }
function download_template($tgl_mulai="-", $tgl_selesai="-", $id_cabang="-", $id_departemen="-"){ function download_template($tgl_mulai = "-", $tgl_selesai = "-", $id_cabang = "-", $id_departemen = "-")
$this->load->helper('excel'); {
$this->load->helper('excel');
$nama_cabang = $this->db->select("nama")
->from("master_cabang") $nama_cabang = $this->db->select("nama")
->where("id_cabang",$id_cabang) ->from("master_cabang")
->where("id_company",$this->id_company) ->where("id_cabang", $id_cabang)
->get() ->where("id_company", $this->id_company)
->row("nama"); ->get()
->row("nama");
if($id_departemen != "-") {
$nama_departemen = $this->db->select("nama") if ($id_departemen != "-") {
->from("master_departemen") $nama_departemen = $this->db->select("nama")
->where("id_departemen",$id_departemen) ->from("master_departemen")
->where("id_company",$this->id_company) ->where("id_departemen", $id_departemen)
->get() ->where("id_company", $this->id_company)
->row("nama"); ->get()
$filename = "Template Import Shift " .$this->lang->line('cabang')." ". $nama_cabang . " ".$this->lang->line('departemen'). " " . $nama_departemen; ->row("nama");
}else{ $filename = "Template Import Shift " . $this->lang->line('cabang') . " " . $nama_cabang . " " . $this->lang->line('departemen') . " " . $nama_departemen;
$filename = "Template Import Shift " .$this->lang->line('cabang'). " ". $nama_cabang . " Semua". $this->lang->line('departemen'); } else {
} $filename = "Template Import Shift " . $this->lang->line('cabang') . " " . $nama_cabang . " Semua" . $this->lang->line('departemen');
}
$header = $this->__kolom_periode($tgl_mulai,$tgl_selesai, $id_cabang);
$header = $this->__kolom_periode($tgl_mulai, $tgl_selesai, $id_cabang);
$colspan = count($header['data_tanggal']) + 7;
$data['colspan'] = $colspan; $colspan = count($header['data_tanggal']) + 7;
$data['header'] = $header['data_tanggal']; $data['colspan'] = $colspan;
$data['nama'] = $filename; $data['header'] = $header['data_tanggal'];
$data['tanggal_mulai'] = date('d-m-Y', strtotime($tgl_mulai)); $data['nama'] = $filename;
$data['tanggal_selesai'] = date('d-m-Y', strtotime($tgl_selesai)); $data['tanggal_mulai'] = date('d-m-Y', strtotime($tgl_mulai));
$data['tanggal_selesai'] = date('d-m-Y', strtotime($tgl_selesai));
$data['jumlah'] = count($header['data_tanggal']);
$data['jumlah'] = count($header['data_tanggal']);
$data_karyawan = $this->Pengaturan_shift_import_m->getDataKaryawan($id_cabang, $id_departemen);
$data_karyawan = $this->Pengaturan_shift_import_m->getDataKaryawan($id_cabang, $id_departemen);
$data['data'] = $data_karyawan;
$data['data'] = $data_karyawan;
$output = true;
$data['is_excel'] = true; $output = true;
$sb_view = $this->load->view('pengaturan/pengaturan_shift/import/download', $data, $output); $data['is_excel'] = true;
$sb_view = $this->load->view('pengaturan/pengaturan_shift/import/download', $data, $output);
$column = [
'A' => ['width' => 5, 'align' => 'center', 'valign' => 'middle'], $column = [
'B' => ['width' => 30, 'align' => 'center', 'valign' => 'middle','format'=>'text'], 'A' => ['width' => 5, 'align' => 'center', 'valign' => 'middle'],
'C' => ['width' => 40], 'B' => ['width' => 30, 'align' => 'center', 'valign' => 'middle', 'format' => 'text'],
'D' => ['width' => 20], 'C' => ['width' => 40],
'E' => ['width' => 20], 'D' => ['width' => 20],
'F' => ['width' => 20], 'E' => ['width' => 20],
'G' => ['width' => 0,'format'=>'text'], 'F' => ['width' => 20],
'H' => ['width' => 0,'format'=>'text'], 'G' => ['width' => 0, 'format' => 'text'],
]; 'H' => ['width' => 0, 'format' => 'text'],
];
$column = kolom_highlight_libur($column, $header['data_tanggal'], $tgl_mulai, $tgl_selesai, $id_cabang, 6);
$column = kolom_highlight_libur($column, $header['data_tanggal'], $tgl_mulai, $tgl_selesai, $id_cabang, 6);
$param = [
'download' => true, $param = [
'cLength' => $colspan, 'download' => true,
'file_name' => strtoupper($filename), 'cLength' => $colspan,
'paper_size' => 'A4', 'file_name' => strtoupper($filename),
'font-size' => 12, 'paper_size' => 'A4',
// 'pagebreak' => true, 'font-size' => 12,
'page_margin' => ['top' => 0, 'right' => 0.75, 'left' => 0.75, 'botom' => 0], // 'pagebreak' => true,
'orientation' => 'potrait', 'page_margin' => ['top' => 0, 'right' => 0.75, 'left' => 0.75, 'botom' => 0],
'header' => [ 'orientation' => 'potrait',
'1' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'], 'header' => [
'2' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'], '1' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'],
'3' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'], '2' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'],
'4' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'], '3' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'],
], '4' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'],
'freezecolumn' => ['D7'], ],
'thead' => ['5', '6'], 'freezecolumn' => ['D7'],
'tbody' => [ 'thead' => ['5', '6'],
'start' => '5', 'tbody' => [
'height' => 13, 'start' => '5',
// 'runFunction' => ['highlightlibur' => 'P'], 'height' => 13,
'wrap' => ['B', 'C'], // 'runFunction' => ['highlightlibur' => 'P'],
'column' => $column 'wrap' => ['B', 'C'],
], 'column' => $column
]; ],
$this->excel->generateExcelShift($sb_view, $param); ];
$this->excel->generateExcelShift($sb_view, $param);
}
}
public function import_data_excel(){
if(!empty($_FILES['file']['name'])) { public function import_data_excel()
$tahunbulan = date('Ym'); {
$fileUpload['fname'] = 'file'; if (!empty($_FILES['file']['name'])) {
$fileUpload['location'] = 'template_shift/'.$tahunbulan; $tahunbulan = date('Ym');
$fileUpload['allowed'] = 'xls|xlsx'; $fileUpload['fname'] = 'file';
$fileUpload['compress_image'] = false; $fileUpload['location'] = 'template_shift/' . $tahunbulan;
$fileUpload['allowed'] = 'xls|xlsx';
$fileUpload['compress_image'] = false;
$upload = $this->uploadfile->doUpload($fileUpload); $upload = $this->uploadfile->doUpload($fileUpload);
if($upload["success"] == true){ if ($upload["success"] == true) {
$dir_file = $this->config->item('base_upload').$upload['url']; $dir_file = $this->config->item('base_upload') . $upload['url'];
}else{ } else {
$message = ["message"=>$upload["message"]]; $message = ["message" => $upload["message"]];
return __response_save(false,$message); return __response_save(false, $message);
} }
}else{ } else {
$message = ["message"=>'<font color="#eb3a28"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal import</font>']; $message = ["message" => '<font color="#eb3a28"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal import</font>'];
return __response_save(false,["message"=>$message]); return __response_save(false, ["message" => $message]);
} }
try{ try {
$inputFileType = PHPExcel_IOFactory::identify($dir_file); $inputFileType = PHPExcel_IOFactory::identify($dir_file);
$objReader = PHPExcel_IOFactory::createReader($inputFileType); $objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($dir_file); $objPHPExcel = $objReader->load($dir_file);
}catch(Exception $e){ } catch (Exception $e) {
$message = ["message"=>'Error loading file "' . pathinfo($dir_file, PATHINFO_BASENAME) . '": ' . $e->getMessage()]; $message = ["message" => 'Error loading file "' . pathinfo($dir_file, PATHINFO_BASENAME) . '": ' . $e->getMessage()];
return __response_save(false,["message"=>$message]); return __response_save(false, ["message" => $message]);
} }
$tags = $objPHPExcel->getProperties()->getKeywords(); $tags = $objPHPExcel->getProperties()->getKeywords();
if ($tags != '1.2') { if ($tags != '1.2') {
$message = '<font color="#eb3a28"><i class="fa fa-exclamation-triangle">&nbsp;</i>GAGAL, template import masih menggunakan versi lama, silahkan download template versi terbaru</font>'; $message = '<font color="#eb3a28"><i class="fa fa-exclamation-triangle">&nbsp;</i>GAGAL, template import masih menggunakan versi lama, silahkan download template versi terbaru</font>';
return __response_save(false, array('message' => $message)); return __response_save(false, array('message' => $message));
}else{ } else {
$id_cabang = $objPHPExcel->setActiveSheetIndex(0)->getCell("H7")->getValue(); $id_cabang = $objPHPExcel->setActiveSheetIndex(0)->getCell("H7")->getValue();
$master_shift = $this->Pengaturan_shift_import_m->masterShift($id_cabang); $master_shift = $this->Pengaturan_shift_import_m->masterShift($id_cabang);
$id_temp = $this->fungsi->getNextId('data_shift_karyawan_temp','id',$this->id_company,5); $id_temp = $this->fungsi->getNextId('data_shift_karyawan_temp', 'id', $this->id_company, 5);
$highestColumm = $objPHPExcel->setActiveSheetIndex(0)->getHighestColumn(); $highestColumm = $objPHPExcel->setActiveSheetIndex(0)->getHighestColumn();
$highestRow = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow(); $highestRow = $objPHPExcel->setActiveSheetIndex(0)->getHighestRow();
$data_insert = array(); $data_insert = array();
$highestColumm++; $highestColumm++;
for ($row = 7; $row < $highestRow; $row++) { for ($row = 7; $row < $highestRow; $row++) {
$dataset = array(); $dataset = array();
for ($column = 'I'; $column != $highestColumm; $column++) { for ($column = 'I'; $column != $highestColumm; $column++) {
$id_karyawan = $objPHPExcel->setActiveSheetIndex(0)->getCell("G". $row)->getValue(); $id_karyawan = $objPHPExcel->setActiveSheetIndex(0)->getCell("G" . $row)->getValue();
$tgl_shift = $objPHPExcel->setActiveSheetIndex(0)->getCell($column ."6")->getValue(); $tgl_shift = $objPHPExcel->setActiveSheetIndex(0)->getCell($column . "6")->getValue();
if($tgl_shift == '') { if ($tgl_shift == '') {
continue; continue;
} }
$tgl_shift = date_format(date_create($tgl_shift),"Y-m-d"); $tgl_shift = date_format(date_create($tgl_shift), "Y-m-d");
$kode_shift = $objPHPExcel->setActiveSheetIndex(0)->getCell($column . $row)->getValue(); $kode_shift = $objPHPExcel->setActiveSheetIndex(0)->getCell($column . $row)->getValue();
$kode_shift = strtoupper(strtolower(trim($kode_shift))); $kode_shift = strtoupper(strtolower(trim($kode_shift)));
if(empty($kode_shift)){ if (empty($kode_shift)) {
$flag = '2'; $flag = '2';
}else{ } else {
if(strtotime($tgl_shift) < strtotime(date("Y-m-d"))){ if (strtotime($tgl_shift) < strtotime(date("Y-m-d"))) {
$flag = '3'; $flag = '3';
}else{ } else {
$flag = '1'; $flag = '1';
} }
} }
if(empty($master_shift[$kode_shift])){ if (empty($master_shift[$kode_shift])) {
$id_master_shift = $kode_shift; $id_master_shift = $kode_shift;
$flag = '2'; $flag = '2';
}else{ } else {
$id_master_shift = $master_shift[$kode_shift]; $id_master_shift = $master_shift[$kode_shift];
} }
if(!empty($id_karyawan)){ if (!empty($id_karyawan)) {
$data = array("id" => $id_temp, $data = array(
"id_karyawan"=>$id_karyawan, "id" => $id_temp,
"tanggal"=>$tgl_shift, "id_karyawan" => $id_karyawan,
"id_master_shift" =>$id_master_shift, "tanggal" => $tgl_shift,
"flag" =>$flag, "id_master_shift" => $id_master_shift,
"user_input" =>$this->id_karyawan, "flag" => $flag,
"id_company" => $this->id_company); "user_input" => $this->id_karyawan,
"id_company" => $this->id_company
$data_insert[] = $data; );
$last_id = substr($id_temp,-5); $data_insert[] = $data;
$next_id = $last_id+1;
$id_temp = substr($id_temp,0,-5).sprintf("%05d", $next_id); $last_id = substr($id_temp, -5);
$next_id = $last_id + 1;
} $id_temp = substr($id_temp, 0, -5) . sprintf("%05d", $next_id);
}
} }
} }
}
$this->db->trans_start(); }
$this->db->where("id_company",$this->id_company); $this->db->trans_start();
$this->db->where("user_input",$this->id_karyawan);
$this->db->delete("data_shift_karyawan_temp"); $this->db->where("id_company", $this->id_company);
// $this->db->where("user_input", $this->id_karyawan);
$this->db->insert_batch('data_shift_karyawan_temp', $data_insert); $this->db->delete("data_shift_karyawan_temp");
$this->db->trans_complete(); $this->db->insert_batch('data_shift_karyawan_temp', $data_insert);
if ($this->db->trans_status() === FALSE) { $this->db->trans_complete();
$this->db->trans_rollback();
$message = ["message"=>'<font color="#eb3a28"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal diimport</font>']; if ($this->db->trans_status() === FALSE) {
return __response_save(false,$message); $this->db->trans_rollback();
}else{ $message = ["message" => '<font color="#eb3a28"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal diimport</font>'];
$this->db->trans_commit(); return __response_save(false, $message);
$message = ["message"=>'<font color="#009900"><i class="fa fa-check-square">&nbsp;</i>Data berhasil diimport</font>']; } else {
return __response_save(true,$message); $this->db->trans_commit();
} $message = ["message" => '<font color="#009900"><i class="fa fa-check-square">&nbsp;</i>Data berhasil diimport</font>'];
return __response_save(true, $message);
}
} }
public function publish_all(){ public function publish_all()
{
$periode = $this->Pengaturan_shift_import_m->getPeriodeShift(); $periode = $this->Pengaturan_shift_import_m->getPeriodeShift();
$tgl_mulai = $periode->tgl_mulai; $tgl_mulai = $periode->tgl_mulai;
$tgl_selesai = $periode->tgl_selesai; $tgl_selesai = $periode->tgl_selesai;
$data_shift_ready = $this->Pengaturan_shift_import_m->getDataShiftReady($tgl_mulai,$tgl_selesai); $data_shift_ready = $this->Pengaturan_shift_import_m->getDataShiftReady($tgl_mulai, $tgl_selesai);
$id_shift_karyawan = $this->fungsi->getNextId('data_shift_karyawan','id_shift_karyawan',$this->id_company,5); $id_shift_karyawan = $this->fungsi->getNextId('data_shift_karyawan', 'id_shift_karyawan', $this->id_company, 5);
$tgl_now = date("Y-m-d"); $tgl_now = date("Y-m-d");
$data_insert = []; $data_insert = [];
$data_update = []; $data_update = [];
$data_delete = []; $data_delete = [];
$data_shift = $this->Pengaturan_shift_import_m->getDataShiftTemp(); $data_shift = $this->Pengaturan_shift_import_m->getDataShiftTemp();
foreach($data_shift as $rows){ foreach ($data_shift as $rows) {
$id = $rows->id; $id = $rows->id;
$tanggal = $rows->tanggal; $tanggal = $rows->tanggal;
$id_karyawan = $rows->id_karyawan; $id_karyawan = $rows->id_karyawan;
$id_master_shift = $rows->id_master_shift; $id_master_shift = $rows->id_master_shift;
if(strtotime($tanggal) >= strtotime($tgl_now)){ if (strtotime($tanggal) >= strtotime($tgl_now)) {
$flag = "4"; $flag = "4";
$data_insert[] = ["id_shift_karyawan"=>$id_shift_karyawan, $data_insert[] = [
"tanggal" => $tanggal, "id_shift_karyawan" => $id_shift_karyawan,
"id_karyawan" => $id_karyawan, "tanggal" => $tanggal,
"id_master_shift" => $id_master_shift, "id_karyawan" => $id_karyawan,
"user_input" => $this->id_karyawan, "id_master_shift" => $id_master_shift,
"id_company" => $this->id_company]; "user_input" => $this->id_karyawan,
"id_company" => $this->id_company
];
$last_id = substr($id_shift_karyawan,-5); $last_id = substr($id_shift_karyawan, -5);
$next_id = $last_id+1; $next_id = $last_id + 1;
$id_shift_karyawan = substr($id_shift_karyawan,0,-5).sprintf("%05d", $next_id); $id_shift_karyawan = substr($id_shift_karyawan, 0, -5) . sprintf("%05d", $next_id);
if(!empty($data_shift_ready[$id_karyawan."-".$tanggal])){ if (!empty($data_shift_ready[$id_karyawan . "-" . $tanggal])) {
$data_delete[] = $data_shift_ready[$id_karyawan."-".$tanggal]; $data_delete[] = $data_shift_ready[$id_karyawan . "-" . $tanggal];
} }
}else{ } else {
$flag = "3"; $flag = "3";
} }
$data_update[] = ["id"=>$id, $data_update[] = [
"flag" => $flag]; "id" => $id,
"flag" => $flag
];
} }
// echo "<prev>"; // echo "<prev>";
// print_r($data_insert); // print_r($data_insert);
// print_r($data_delete); // print_r($data_delete);
// print_r($data_update); // print_r($data_update);
// die(); // die();
$this->db->trans_start(); $this->db->trans_start();
if(count($data_delete) > 0){ if (count($data_delete) > 0) {
$this->db->where_in('id_shift_karyawan', $data_delete); $this->db->where_in('id_shift_karyawan', $data_delete);
$this->db->delete('data_shift_karyawan'); $this->db->delete('data_shift_karyawan');
} }
$this->db->insert_batch('data_shift_karyawan', $data_insert); $this->db->insert_batch('data_shift_karyawan', $data_insert);
$this->db->update_batch('data_shift_karyawan_temp', $data_update, 'id'); $this->db->update_batch('data_shift_karyawan_temp', $data_update, 'id');
$this->db->trans_complete(); $this->db->trans_complete();
if($this->db->trans_status() === FALSE) { if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback(); $this->db->trans_rollback();
return __response_save(false); return __response_save(false);
}else{ } else {
$this->db->trans_commit(); $this->db->trans_commit();
return __response_save(true); return __response_save(true);
} }
} }
public function delete_all_temp(){ public function delete_all_temp()
$this->db->where("id_company",$this->id_company); {
$this->db->where("user_input",$this->id_karyawan); $this->db->where("id_company", $this->id_company);
$delete = $this->db->delete("data_shift_karyawan_temp"); $this->db->where("user_input", $this->id_karyawan);
return __response_delete($delete); $delete = $this->db->delete("data_shift_karyawan_temp");
} return __response_delete($delete);
}
} }
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