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