Commit ca5b4019 by nurchamim

menyesuaikan pembaruan

parent 72891cb7
......@@ -32,8 +32,9 @@ $config['socket_dir'] = $config['base_url'].'/assets/plugins/node_ser
$config['dir_assets'] = $config['base_url'].'assets/';
$config['socket_server'] = $server_name.':'.$socket_port;
$config['socket_port'] = $socket_port;
$config['socket_namespace'] = 'absenku-apps';
// $config['base_image'] = 'https://apps.absenku.com/web/';
$config['socket_namespace'] = 'custom';
$config['socket_room_prefix'] = 'custom'; // tergantung subdomain
$config['user_agent'] = 'custom'; // disamakan socket room prefix
$config['base_image'] = $config['base_url'];
$config['base_upload'] = '../../../../uploads/biodata/';
$config['base_upload'] = $config['base_upload'].'master_custom/';
......
......@@ -250,6 +250,7 @@ class Data_reimburse extends MY_Controller {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$base."reimbursement/update-status");
curl_setopt($ch, CURLOPT_USERAGENT, $this->config->item('user_agent'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
......
......@@ -757,7 +757,7 @@ class Pengajuan_izin extends MY_Controller
"api-key:absenku123**"
);
curl_setopt($curl, CURLOPT_USERAGENT, 'absenku_v3_250801_multi');
curl_setopt($ch, CURLOPT_USERAGENT, $this->config->item('user_agent'));
curl_setopt($curl, CURLOPT_URL, $url_act);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
......
......@@ -610,7 +610,7 @@ class Pengajuan_lembur extends MY_Controller
"api-key:absenku123**"
);
curl_setopt($curl, CURLOPT_USERAGENT, 'absenku_v3_250801_multi');
curl_setopt($ch, CURLOPT_USERAGENT, $this->config->item('user_agent'));
curl_setopt($curl, CURLOPT_URL, $url_act);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PATCH');
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
......
......@@ -49,7 +49,7 @@ class Riwayat_pendidikan extends MY_Controller
public function save()
{
$id = $this->input->post('id_pendidikan');
$id_company = $this->session->userdata('id_company');
$id_company = $this->id_company;
$id_karyawan = $this->fungsi->decrypt_idkaryawan($this->input->post('id_karyawan'));
$transkrip_lama = $this->input->post('transkrip_lama');
......@@ -104,17 +104,17 @@ class Riwayat_pendidikan extends MY_Controller
}
$data = array(
'nama_sekolah' => $this->input->post('nama_sekolah'),
'jenjang' => $this->input->post('jenjang'),
'jurusan' => $this->input->post('jurusan'),
'lulusan_asal' => $this->input->post('lulusan_asal'),
'gelar' => $this->input->post('gelar'),
'tahun_masuk' => $this->input->post('tahun_masuk'),
'tahun_lulus' => $this->input->post('tahun_lulus'),
'ijazah' => $ijazah,
'transkrip' => $transkrip,
'id_company' => $id_company,
'id_karyawan' => $id_karyawan
'nama_sekolah' => $this->input->post('nama_sekolah'),
'jenjang' => $this->input->post('jenjang'),
'jurusan' => $this->input->post('jurusan'),
'lulusan_asal' => $this->input->post('lulusan_asal'),
'gelar' => $this->input->post('gelar'),
'tahun_masuk' => $this->input->post('tahun_masuk'),
'tahun_lulus' => $this->input->post('tahun_lulus'),
'ijazah' => $ijazah,
'transkrip' => $transkrip,
'id_company' => $id_company,
'id_karyawan' => $id_karyawan
);
$this->Riwayat_pendidikan_m->save($data, $id);
}
......
......@@ -42,7 +42,7 @@ class Reminder_absensi extends CI_Controller {
'setelah_pulang_menit' => $row->absensi_pulang_setelah_menit,
'jam_mulai' => $jam_mulai,
'jam_selesai' => $jam_selesai,
'notif' => 'profesional'
'notif' => 'profesional'
]));
$output = curl_exec($ch);
......@@ -55,27 +55,27 @@ class Reminder_absensi extends CI_Controller {
}
public function testing() {
$this->load->database('payroll');
$this->load->database('payroll');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost:3007/queue_reminder_absensi');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'id_company' => '202100001',
'sebelum_masuk' => '1',
'sebelum_masuk_menit' => 0,
'setelah_masuk' => '0',
'setelah_masuk_menit' => 0,
'setelah_pulang' => '0',
'setelah_pulang_menit' => 0,
'jam_mulai' => '14:30:00',
'jam_selesai' => '14:50:00',
'notif' => 'profesional'
]));
curl_setopt($ch, CURLOPT_USERAGENT, 'PROFESIONAL');
$output = curl_exec($ch);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost:3007/queue_reminder_absensi');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
'id_company' => '202100001',
'sebelum_masuk' => '1',
'sebelum_masuk_menit' => 0,
'setelah_masuk' => '0',
'setelah_masuk_menit' => 0,
'setelah_pulang' => '0',
'setelah_pulang_menit' => 0,
'jam_mulai' => '14:30:00',
'jam_selesai' => '14:50:00',
'notif' => 'profesional'
]));
curl_setopt($ch, CURLOPT_USERAGENT, 'PROFESIONAL');
$output = curl_exec($ch);
echo $row->id_company." : ".$output."\n";
curl_close($ch);
}
}
}
......@@ -151,60 +151,61 @@ class Draft_pkwt extends MY_Controller {
'nm_aplikasi' => 'fcm'
];
$ch = curl_init();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mb-producer.absenku.com/fcm?".http_build_query($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'authentication: absenku123**'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $this->config->item('user_agent'));
$output = curl_exec($ch);
curl_close($ch);
}
}
private function _konversi_romawi($angka){
switch ($angka) {
case 1 : return 'I';
break;
case 2 : return 'II';
break;
case 3 : return 'III';
break;
case 4 : return 'IV';
break;
case 5 : return 'V';
break;
case 6 : return 'VI';
break;
case 7 : return 'VII';
break;
case 8 : return 'VIII';
break;
case 9 : return 'IX';
break;
case 10 : return 'X';
break;
case 11 : return 'XI';
break;
case 12 : return 'XII';
break;
default : return '-';
break;
}
}
private function _konversi_romawi($angka){
switch ($angka) {
case 1 : return 'I';
break;
case 2 : return 'II';
break;
case 3 : return 'III';
break;
case 4 : return 'IV';
break;
case 5 : return 'V';
break;
case 6 : return 'VI';
break;
case 7 : return 'VII';
break;
case 8 : return 'VIII';
break;
case 9 : return 'IX';
break;
case 10 : return 'X';
break;
case 11 : return 'XI';
break;
case 12 : return 'XII';
break;
default : return '-';
break;
}
}
private function _get_no_urut($tahun="2024"){
$getId = $this->db->query("SELECT MAX(SUBSTRING_INDEX(SUBSTRING_INDEX(no_pkwt, '/', -3), '/', 1)) AS no_urut
FROM pkwt_data
WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(no_pkwt, '/', -1), '/', 1) = ?", array($tahun));
if ($getId->num_rows() > 0) {
$current_id = $getId->row()->no_urut;
$no_urut = $current_id + 1;
} else {
$no_urut = 1;
}
return sprintf("%03d", $no_urut);
}
private function _get_no_urut($tahun="2024"){
$getId = $this->db->query("SELECT MAX(SUBSTRING_INDEX(SUBSTRING_INDEX(no_pkwt, '/', -3), '/', 1)) AS no_urut
FROM pkwt_data
WHERE SUBSTRING_INDEX(SUBSTRING_INDEX(no_pkwt, '/', -1), '/', 1) = ?", array($tahun));
if ($getId->num_rows() > 0) {
$current_id = $getId->row()->no_urut;
$no_urut = $current_id + 1;
} else {
$no_urut = 1;
}
return sprintf("%03d", $no_urut);
}
}
\ No newline at end of file
......@@ -3,377 +3,377 @@ defined('BASEPATH') OR exit('No direct script access allowed');
class Verifikasi extends MY_Controller {
public function __construct(){
public function __construct(){
parent::__construct();
$this->load->model('pkwt/baru/Verifikasi_m');
}
public function list_data($tanggal_mulai="0000-00-00", $tanggal_selesai="0000-00-00", $id_cabang="", $id_departemen="", $id_karyawan=""){
$list = $this->Verifikasi_m->get_datatables($tanggal_mulai, $tanggal_selesai, $id_cabang, $id_departemen, $id_karyawan);
$data = array();
$no = $_GET['start'];
foreach ($list as $field) {
$no++;
$row = array();
$row[] = $no;
$row[] = $field->nm_karyawan. "<br><b>". $field->nik.'</b>';
$row[] = $field->nm_jabatan. "<br><b>". $field->nm_lvl_user.'</b>';
$row[] = $field->nm_cabang. "<br>". $field->nm_departemen;
$row[] = $this->_get_approval($field->apv_karyawan);
if($field->apv_direksi == '1') {
$direksi = '<a href="#" id="' . md5($field->id_pkwt) . '" class="btn_verifikasi_pkwt btn btn-primary" title="VERIFIKASI">
<i class="fa fa-check"> </i> VERIFIKASI</a>&nbsp;';
$checklist = '<input class="cek_pkwt_verifikasi" type="checkbox" name="checkbox_verifikasi" value="' . md5($field->id_pkwt) . '" >';
} elseif(in_array($field->apv_direksi,['3','4'])) {
$direksi = $this->_get_approval($field->apv_direksi);
$checklist = '<input class="cek_pkwt_verifikasi" type="checkbox" name="checkbox_verifikasi" disabled >';
}else{
$direksi = '<a class="btn_verifikasi btn btn-light text-white" title="VERIFIKASI" disabled>
<i class="fa fa-check"> </i> VERIFIKASI</a>&nbsp;';
$checklist = '<input class="cek_pkwt_verifikasi" type="checkbox" name="checkbox_verifikasi" disabled >';
}
$row[] = $direksi;
$row[] = '<a href="'.site_url('pkwt/baru/download/pdf/'.md5($field->id_pkwt)).'" title="Detail" class="text-primary" target="_blank">
<i class="btn_detail fa fa-info-circle (alias) "> </i>
</a>&nbsp;';
$row[] = $checklist;
$data[] = $row;
}
$output = array("draw" => $_GET['draw'],
"recordsTotal" => $this->Verifikasi_m->count_all($tanggal_mulai, $tanggal_selesai, $id_cabang, $id_departemen, $id_karyawan),
"recordsFiltered" => $this->Verifikasi_m->count_filtered($tanggal_mulai, $tanggal_selesai, $id_cabang, $id_departemen, $id_karyawan),
"data" => $data);
$output = __response($this->MY_response, $output);
echo json_encode($output);
}
public function verifikasi_form($id_pkwt){
$data['data'] = $this->Verifikasi_m->getDataById($id_pkwt);
$this->load->view('pkwt/baru/form_approval', $data);
}
public function verifikasi_approve(){
$this->nama_lengkap = $this->session->userdata('nama_user');
$this->nik = $this->session->userdata('nik');
$id_pkwt = $this->input->post('id');
$apv_direksi = $this->input->post('status');
$path_ttd = $this->input->post('path_ttd');
$nm_direktur = $this->input->post('nm_direktur');
$tgl_pkwt_mulai = $this->input->post('tgl_pkwt_mulai');
$tgl_pkwt_selesai = $this->input->post('tgl_pkwt_selesai');
$no_pkwt = $this->input->post('no_pkwt');
$ket_tolak = $this->input->post('ket_tolak');
$id_karyawan = $this->_get_data_pkwt($id_pkwt)->id_karyawan;
// START PINDAH TTD DIREKTUR
$path_master_ttd_direksi = $this->config->item('base_upload').$path_ttd;
if($apv_direksi == '4'){
if (file_exists($path_master_ttd_direksi)) {
// deteksi ekstension
$file_info = pathinfo($path_master_ttd_direksi);
$file_extension = isset($file_info['extension']) ? $file_info['extension'] : '';
// nama file
$sub_pkwt = str_replace('/', '_', $no_pkwt);
$nama_file = $sub_pkwt.'_'.$id_karyawan.'_'.date("YmdHis").'.'.$file_extension;
$path_apv_ttd_direksi = $this->config->item('base_upload').$this->id_company.'/pkwt/apv_direksi';
if (!file_exists($path_apv_ttd_direksi)) {
mkdir($path_apv_ttd_direksi, 0755, true);
}
$copy = copy($path_master_ttd_direksi, $path_apv_ttd_direksi.'/'.$nama_file);
if ($copy) {
// berhasil
} else {
echo "gagal: " . error_get_last()['message'];
}
} else {
echo "Source file does not exist";
}
}
// END PINDAH TTD DIREKTUR
$update_pkwt = array('apv_direksi' => $apv_direksi,
'status' => $apv_direksi,
'nm_direktur' => $nm_direktur,
'ket_tolak' => $ket_tolak,
'tgl_apv_direksi' => date("Y-m-d H:i:s"),
'user_apv_direksi' => $this->nik. " - ". $this->nama_lengkap);
$update_data_karyawan = array('tgl_aktif_bekerja' => $tgl_pkwt_mulai,
'tgl_berhenti_bekerja' => $tgl_pkwt_selesai);
if($apv_direksi == '4'){
$path_ttd_direktur = array('ttd_direktur' => $this->id_company.'/pkwt/apv_direksi/'.$nama_file);
}else{
$path_ttd_direktur = array();
}
$this->db->trans_start();
// 1. update pkwt
$this->db->where('id_company', $this->id_company);
$this->db->where('MD5(id_pkwt)', $id_pkwt);
$this->db->update('pkwt_data', array_merge($update_pkwt,$path_ttd_direktur));
if($apv_direksi == '4'){
// 2. update tgl kontrak
$this->db->where('id_company', $this->id_company);
$this->db->where('id_karyawan', $id_karyawan);
$this->db->update('data_karyawan', $update_data_karyawan);
}
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback();
$message = '<font color="#FF0000"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal diapprove</font>';
return __response_update(false,["message"=>$message]);
}else{
$this->db->trans_commit();
if($apv_direksi == "4"){
$message = 'Data PKWT berhasil disetujui';
}else{
$message = 'Data PKWT berhasil ditolak';
}
$this->_send_notifikasi($apv_direksi, $id_pkwt);
return __response_update(true,["message"=>$message]);
}
}
public function verifikasi_form_all(){
$this->load->view('pkwt/baru/form_approval_all', $data);
}
public function verifikasi_approve_all(){
$this->nama_lengkap = $this->session->userdata('nama_user');
$this->nik = $this->session->userdata('nik');
$path_ttd = $this->input->post('path_ttd');
$nm_direktur = $this->input->post('nm_direktur');
$apv_direksi = $this->input->post('status');
$ket_tolak = $this->input->post('ket_tolak');
$array_verifikasi = json_decode($this->input->post('array_verifikasi')); // object
$pkwt_update = array();
$gaji_insert = array();
$tgl_kontrak_update = array();
$tunj_insert = array();
foreach($array_verifikasi as $verif){
$id_pkwt = $verif->value;
$get_pkwt = $this->_get_data_pkwt($id_pkwt);
$no_pkwt = $get_pkwt->no_pkwt;
$id_karyawan = $get_pkwt->id_karyawan;
// START DATA PKWT
if($apv_direksi == '4'){
$sourceFilePath = $this->config->item('base_image').$path_ttd;
// START PINDAH TTD DIREKTUR
$path_master_ttd_direksi = $this->config->item('base_upload').$path_ttd;
if (file_exists($path_master_ttd_direksi)) {
// deteksi ekstension
$file_info = pathinfo($path_master_ttd_direksi);
$file_extension = isset($file_info['extension']) ? $file_info['extension'] : '';
// nama file
$sub_pkwt = str_replace('/', '_', $no_pkwt);
$nama_file = $sub_pkwt.'_'.$id_karyawan.'_'.date("YmdHis").'.'.$file_extension;
$path_apv_ttd_direksi = $this->config->item('base_upload').$this->id_company.'/pkwt/apv_direksi';
if (!file_exists($path_apv_ttd_direksi)) {
mkdir($path_apv_ttd_direksi, 0755, true);
}
$copy = copy($path_master_ttd_direksi, $path_apv_ttd_direksi.'/'.$nama_file);
if ($copy) {
// berhasil
} else {
echo "gagal: " . error_get_last()['message'];
}
} else {
echo "Source file does not exist";
}
// END PINDAH TTD DIREKTUR
$path_ttd_direktur = array('ttd_direktur' => $this->id_company.'/pkwt/apv_direksi/'.$nama_file);
}else{
$path_ttd_direktur = array();
}
$data_pkwt = array('md5(id_pkwt)' => $id_pkwt,
'apv_direksi' => $apv_direksi,
'status' => $apv_direksi,
'nm_direktur' => $nm_direktur,
'ket_tolak' => $ket_tolak,
'tgl_apv_direksi' => date("Y-m-d H:i:s"),
'user_apv_direksi' => $this->nik. " - ". $this->nama_lengkap);
// END DATA PKWT
$data_tgl_kontrak = array('id_karyawan' => $get_pkwt->id_karyawan,
'tgl_aktif_bekerja' => $get_pkwt->tgl_pkwt_mulai,
'tgl_berhenti_bekerja' => $get_pkwt->tgl_pkwt_selesai);
$pkwt_update[] = array_merge($data_pkwt,$path_ttd_direktur);
$tgl_kontrak_update[] = $data_tgl_kontrak;
$id_karyawan_arr[] = $id_karyawan;
}
# Modifikasi Array Tunjangan Insert
$flattenedArray = [];
foreach ($tunj_insert as $nestedArray) {
foreach ($nestedArray as $item) {
$flattenedArray[] = $item;
}
}
$this->db->trans_start();
// 1. update pkwt
$this->db->where('id_company', $this->id_company);
$this->db->update_batch('pkwt_data', $pkwt_update, 'md5(id_pkwt)');
if($apv_direksi == '4'){
// 2. update tgl kontrak
$this->db->where('id_company', $this->id_company);
$this->db->update_batch('data_karyawan', $tgl_kontrak_update, 'id_karyawan');
}
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback();
$message = '<font color="#FF0000"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal diapprove</font>';
return __response_update(false,["message"=>$message]);
}else{
$this->db->trans_commit();
if($apv_direksi == "4"){
$message = 'Data PKWT berhasil disetujui';
}else{
$message = 'Data PKWT berhasil ditolak';
}
foreach($pkwt_update as $value){
$this->_send_notifikasi($apv_direksi, $value['id_pkwt']);
}
return __response_update(true,["message"=>$message]);
}
}
// Untuk Update Data ketika Diapprove
private function _get_data_pkwt($id){
$query = $this->db->select('id_pkwt,id_karyawan,tgl_pkwt_mulai,tgl_pkwt_selesai,no_pkwt')
->from('pkwt_data')
->where('id_company', $this->id_company)
->where('MD5(id_pkwt)', $id)
->get()
->row();
return $query;
}
// Untuk Update Data ketika Diapprove
private function _cek_gapok($id_karyawan){
$query = $this->db->select('gapok')
->from('pkwt_gaji_m')
->where('id_company', $this->id_company)
->where('id_karyawan', $id_karyawan)
->get()
->row()
->gapok;
return $query;
}
public function onchange_path_ttd(){
$id_karyawan = $this->input->get('id_karyawan');
$query = $this->db->select('id_karyawan, nm_karyawan, path_ttd')
->from('pkwt_direktur')
->where("id_company", $this->id_company)
->where("id_karyawan", $id_karyawan)
->get()
->row();
$list = $this->Verifikasi_m->get_datatables($tanggal_mulai, $tanggal_selesai, $id_cabang, $id_departemen, $id_karyawan);
$data = array();
$no = $_GET['start'];
foreach ($list as $field) {
$no++;
$row = array();
$row[] = $no;
$row[] = $field->nm_karyawan. "<br><b>". $field->nik.'</b>';
$row[] = $field->nm_jabatan. "<br><b>". $field->nm_lvl_user.'</b>';
$row[] = $field->nm_cabang. "<br>". $field->nm_departemen;
$row[] = $this->_get_approval($field->apv_karyawan);
if($field->apv_direksi == '1') {
$direksi = '<a href="#" id="' . md5($field->id_pkwt) . '" class="btn_verifikasi_pkwt btn btn-primary" title="VERIFIKASI">
<i class="fa fa-check"> </i> VERIFIKASI</a>&nbsp;';
$checklist = '<input class="cek_pkwt_verifikasi" type="checkbox" name="checkbox_verifikasi" value="' . md5($field->id_pkwt) . '" >';
} elseif(in_array($field->apv_direksi,['3','4'])) {
$direksi = $this->_get_approval($field->apv_direksi);
$checklist = '<input class="cek_pkwt_verifikasi" type="checkbox" name="checkbox_verifikasi" disabled >';
}else{
$direksi = '<a class="btn_verifikasi btn btn-light text-white" title="VERIFIKASI" disabled>
<i class="fa fa-check"> </i> VERIFIKASI</a>&nbsp;';
$checklist = '<input class="cek_pkwt_verifikasi" type="checkbox" name="checkbox_verifikasi" disabled >';
}
$row[] = $direksi;
$row[] = '<a href="'.site_url('pkwt/baru/download/pdf/'.md5($field->id_pkwt)).'" title="Detail" class="text-primary" target="_blank">
<i class="btn_detail fa fa-info-circle (alias) "> </i>
</a>&nbsp;';
$row[] = $checklist;
$data[] = $row;
}
$output = array("draw" => $_GET['draw'],
"recordsTotal" => $this->Verifikasi_m->count_all($tanggal_mulai, $tanggal_selesai, $id_cabang, $id_departemen, $id_karyawan),
"recordsFiltered" => $this->Verifikasi_m->count_filtered($tanggal_mulai, $tanggal_selesai, $id_cabang, $id_departemen, $id_karyawan),
"data" => $data);
$output = __response($this->MY_response, $output);
echo json_encode($output);
}
public function verifikasi_form($id_pkwt){
$data['data'] = $this->Verifikasi_m->getDataById($id_pkwt);
$this->load->view('pkwt/baru/form_approval', $data);
}
public function verifikasi_approve(){
$this->nama_lengkap = $this->session->userdata('nama_user');
$this->nik = $this->session->userdata('nik');
$id_pkwt = $this->input->post('id');
$apv_direksi = $this->input->post('status');
$path_ttd = $this->input->post('path_ttd');
$nm_direktur = $this->input->post('nm_direktur');
$tgl_pkwt_mulai = $this->input->post('tgl_pkwt_mulai');
$tgl_pkwt_selesai = $this->input->post('tgl_pkwt_selesai');
$no_pkwt = $this->input->post('no_pkwt');
$ket_tolak = $this->input->post('ket_tolak');
$id_karyawan = $this->_get_data_pkwt($id_pkwt)->id_karyawan;
// START PINDAH TTD DIREKTUR
$path_master_ttd_direksi = $this->config->item('base_upload').$path_ttd;
if($apv_direksi == '4'){
if (file_exists($path_master_ttd_direksi)) {
// deteksi ekstension
$file_info = pathinfo($path_master_ttd_direksi);
$file_extension = isset($file_info['extension']) ? $file_info['extension'] : '';
// nama file
$sub_pkwt = str_replace('/', '_', $no_pkwt);
$nama_file = $sub_pkwt.'_'.$id_karyawan.'_'.date("YmdHis").'.'.$file_extension;
$path_apv_ttd_direksi = $this->config->item('base_upload').$this->id_company.'/pkwt/apv_direksi';
if (!file_exists($path_apv_ttd_direksi)) {
mkdir($path_apv_ttd_direksi, 0755, true);
}
$copy = copy($path_master_ttd_direksi, $path_apv_ttd_direksi.'/'.$nama_file);
if ($copy) {
// berhasil
} else {
echo "gagal: " . error_get_last()['message'];
}
} else {
echo "Source file does not exist";
}
}
// END PINDAH TTD DIREKTUR
$update_pkwt = array('apv_direksi' => $apv_direksi,
'status' => $apv_direksi,
'nm_direktur' => $nm_direktur,
'ket_tolak' => $ket_tolak,
'tgl_apv_direksi' => date("Y-m-d H:i:s"),
'user_apv_direksi' => $this->nik. " - ". $this->nama_lengkap);
$update_data_karyawan = array('tgl_aktif_bekerja' => $tgl_pkwt_mulai,
'tgl_berhenti_bekerja' => $tgl_pkwt_selesai);
if($apv_direksi == '4'){
$path_ttd_direktur = array('ttd_direktur' => $this->id_company.'/pkwt/apv_direksi/'.$nama_file);
}else{
$path_ttd_direktur = array();
}
$this->db->trans_start();
// 1. update pkwt
$this->db->where('id_company', $this->id_company);
$this->db->where('MD5(id_pkwt)', $id_pkwt);
$this->db->update('pkwt_data', array_merge($update_pkwt,$path_ttd_direktur));
if($apv_direksi == '4'){
// 2. update tgl kontrak
$this->db->where('id_company', $this->id_company);
$this->db->where('id_karyawan', $id_karyawan);
$this->db->update('data_karyawan', $update_data_karyawan);
}
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback();
$message = '<font color="#FF0000"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal diapprove</font>';
return __response_update(false,["message"=>$message]);
}else{
$this->db->trans_commit();
if($apv_direksi == "4"){
$message = 'Data PKWT berhasil disetujui';
}else{
$message = 'Data PKWT berhasil ditolak';
}
$this->_send_notifikasi($apv_direksi, $id_pkwt);
return __response_update(true,["message"=>$message]);
}
}
public function verifikasi_form_all(){
$this->load->view('pkwt/baru/form_approval_all', $data);
}
public function verifikasi_approve_all(){
$this->nama_lengkap = $this->session->userdata('nama_user');
$this->nik = $this->session->userdata('nik');
$path_ttd = $this->input->post('path_ttd');
$nm_direktur = $this->input->post('nm_direktur');
$apv_direksi = $this->input->post('status');
$ket_tolak = $this->input->post('ket_tolak');
$array_verifikasi = json_decode($this->input->post('array_verifikasi')); // object
$pkwt_update = array();
$gaji_insert = array();
$tgl_kontrak_update = array();
$tunj_insert = array();
foreach($array_verifikasi as $verif){
$id_pkwt = $verif->value;
$get_pkwt = $this->_get_data_pkwt($id_pkwt);
$no_pkwt = $get_pkwt->no_pkwt;
$id_karyawan = $get_pkwt->id_karyawan;
// START DATA PKWT
if($apv_direksi == '4'){
$sourceFilePath = $this->config->item('base_image').$path_ttd;
// START PINDAH TTD DIREKTUR
$path_master_ttd_direksi = $this->config->item('base_upload').$path_ttd;
if (file_exists($path_master_ttd_direksi)) {
// deteksi ekstension
$file_info = pathinfo($path_master_ttd_direksi);
$file_extension = isset($file_info['extension']) ? $file_info['extension'] : '';
// nama file
$sub_pkwt = str_replace('/', '_', $no_pkwt);
$nama_file = $sub_pkwt.'_'.$id_karyawan.'_'.date("YmdHis").'.'.$file_extension;
$path_apv_ttd_direksi = $this->config->item('base_upload').$this->id_company.'/pkwt/apv_direksi';
if (!file_exists($path_apv_ttd_direksi)) {
mkdir($path_apv_ttd_direksi, 0755, true);
}
$copy = copy($path_master_ttd_direksi, $path_apv_ttd_direksi.'/'.$nama_file);
if ($copy) {
// berhasil
} else {
echo "gagal: " . error_get_last()['message'];
}
} else {
echo "Source file does not exist";
}
// END PINDAH TTD DIREKTUR
$path_ttd_direktur = array('ttd_direktur' => $this->id_company.'/pkwt/apv_direksi/'.$nama_file);
}else{
$path_ttd_direktur = array();
}
$data_pkwt = array('md5(id_pkwt)' => $id_pkwt,
'apv_direksi' => $apv_direksi,
'status' => $apv_direksi,
'nm_direktur' => $nm_direktur,
'ket_tolak' => $ket_tolak,
'tgl_apv_direksi' => date("Y-m-d H:i:s"),
'user_apv_direksi' => $this->nik. " - ". $this->nama_lengkap);
// END DATA PKWT
$data_tgl_kontrak = array('id_karyawan' => $get_pkwt->id_karyawan,
'tgl_aktif_bekerja' => $get_pkwt->tgl_pkwt_mulai,
'tgl_berhenti_bekerja' => $get_pkwt->tgl_pkwt_selesai);
$pkwt_update[] = array_merge($data_pkwt,$path_ttd_direktur);
$tgl_kontrak_update[] = $data_tgl_kontrak;
$id_karyawan_arr[] = $id_karyawan;
}
# Modifikasi Array Tunjangan Insert
$flattenedArray = [];
foreach ($tunj_insert as $nestedArray) {
foreach ($nestedArray as $item) {
$flattenedArray[] = $item;
}
}
$this->db->trans_start();
// 1. update pkwt
$this->db->where('id_company', $this->id_company);
$this->db->update_batch('pkwt_data', $pkwt_update, 'md5(id_pkwt)');
if($apv_direksi == '4'){
// 2. update tgl kontrak
$this->db->where('id_company', $this->id_company);
$this->db->update_batch('data_karyawan', $tgl_kontrak_update, 'id_karyawan');
}
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
$this->db->trans_rollback();
$message = '<font color="#FF0000"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal diapprove</font>';
return __response_update(false,["message"=>$message]);
}else{
$this->db->trans_commit();
if($apv_direksi == "4"){
$message = 'Data PKWT berhasil disetujui';
}else{
$message = 'Data PKWT berhasil ditolak';
}
foreach($pkwt_update as $value){
$this->_send_notifikasi($apv_direksi, $value['id_pkwt']);
}
return __response_update(true,["message"=>$message]);
}
}
// Untuk Update Data ketika Diapprove
private function _get_data_pkwt($id){
$query = $this->db->select('id_pkwt,id_karyawan,tgl_pkwt_mulai,tgl_pkwt_selesai,no_pkwt')
->from('pkwt_data')
->where('id_company', $this->id_company)
->where('MD5(id_pkwt)', $id)
->get()
->row();
return $query;
}
// Untuk Update Data ketika Diapprove
private function _cek_gapok($id_karyawan){
$query = $this->db->select('gapok')
->from('pkwt_gaji_m')
->where('id_company', $this->id_company)
->where('id_karyawan', $id_karyawan)
->get()
->row()
->gapok;
return $query;
}
public function onchange_path_ttd(){
$id_karyawan = $this->input->get('id_karyawan');
$query = $this->db->select('id_karyawan, nm_karyawan, path_ttd')
->from('pkwt_direktur')
->where("id_company", $this->id_company)
->where("id_karyawan", $id_karyawan)
->get()
->row();
$result = [];
if($query){
$result = ["success" => true,
"data" => [ "nm_karyawan"=>$query->nm_karyawan,
"path_ttd" => $query->path_ttd] ];
"path_ttd" => $query->path_ttd] ];
}else{
$result = ["success" => false,
"message" => "Data gagal ditampilkan"];
}
echo json_encode($result);
}
private function _get_approval($kode) {
switch ($kode) {
case '1' : return '<span class="badge badge-light">Belum Disetujui</span>';
break;
case '2' : return '<span class="badge badge-danger">Dibatalkan</span>';
break;
case '3' : return '<span class="badge badge-danger">Ditolak</span>';
break;
case '4' : return '<span class="badge badge-success">Disetujui</span>';
break;
default : return '-';
break;
}
}
private function _send_notifikasi($act, $id_pkwt){
$data_pkwt = $this->db->select('id_pkwt,token_fcm,no_pkwt')
->from('pkwt_data')
->where('md5(id_pkwt)', $id_pkwt)
->join('users', 'users.id_karyawan = pkwt_data.id_karyawan')
->get()
->row();
$id_pkwt = $data_pkwt->id_pkwt;
$token_fcm = $data_pkwt->token_fcm;
$base = $this->config->item('url_api');
if($act == '4'){
#setujui
$title = "PKWT Sudah Disetujui";
$body = "PKWT dengan Nomor ". $data->no_pkwt. ' sudah ditandangani oleh Direktur';
}elseif($act == '3'){
#tolak
$title = "PKWT Ditolak";
$body = "PKWT dengan Nomor ". $data->no_pkwt. ' ditolak Direktur';
}else{
echo "status tidak diketahui"; die();
}
$params_fcm = [
}
private function _get_approval($kode) {
switch ($kode) {
case '1' : return '<span class="badge badge-light">Belum Disetujui</span>';
break;
case '2' : return '<span class="badge badge-danger">Dibatalkan</span>';
break;
case '3' : return '<span class="badge badge-danger">Ditolak</span>';
break;
case '4' : return '<span class="badge badge-success">Disetujui</span>';
break;
default : return '-';
break;
}
}
private function _send_notifikasi($act, $id_pkwt){
$data_pkwt = $this->db->select('id_pkwt,token_fcm,no_pkwt')
->from('pkwt_data')
->where('md5(id_pkwt)', $id_pkwt)
->join('users', 'users.id_karyawan = pkwt_data.id_karyawan')
->get()
->row();
$id_pkwt = $data_pkwt->id_pkwt;
$token_fcm = $data_pkwt->token_fcm;
$base = $this->config->item('url_api');
if($act == '4'){
#setujui
$title = "PKWT Sudah Disetujui";
$body = "PKWT dengan Nomor ". $data->no_pkwt. ' sudah ditandangani oleh Direktur';
}elseif($act == '3'){
#tolak
$title = "PKWT Ditolak";
$body = "PKWT dengan Nomor ". $data->no_pkwt. ' ditolak Direktur';
}else{
echo "status tidak diketahui"; die();
}
$params_fcm = [
'token_fcm' => $token_fcm,
'route' => '/detail_pkwt_saya',
'title' => $title,
'body' => $body,
'id_ref' => $id_pkwt
'id_ref' => $id_pkwt
];
$params = [
......@@ -383,15 +383,16 @@ class Verifikasi extends MY_Controller {
// 'nm_aplikasi' => 'fcm'
];
$ch = curl_init();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mb-producer.absenku.com/fcm?".http_build_query($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'authentication: absenku123**'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $this->config->item('user_agent'));
$output = curl_exec($ch);
curl_close($ch);
}
}
}
\ No newline at end of file
<?php
function redirect($uri = '', $method = 'auto', $code = NULL)
{
$uri = str_replace("/web/", "", $uri);
if ( ! preg_match('#^(\w+:)?//#i', $uri))
{
$uri = site_url($uri);
}
// IIS environment likely? Use 'refresh' for better compatibility
if ($method === 'auto' && isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS') !== FALSE)
{
$method = 'refresh';
}
elseif ($method !== 'refresh' && (empty($code) OR ! is_numeric($code)))
{
if (isset($_SERVER['SERVER_PROTOCOL'], $_SERVER['REQUEST_METHOD']) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1')
{
$code = ($_SERVER['REQUEST_METHOD'] !== 'GET')
? 303 // reference: http://en.wikipedia.org/wiki/Post/Redirect/Get
: 307;
}
else
{
$code = 302;
}
}
switch ($method)
{
case 'refresh':
header('Refresh:0;url='.$uri);
break;
default:
header('Location: '.$uri, TRUE, $code);
break;
}
exit;
}
......@@ -40,6 +40,7 @@ if (!function_exists('data_diri_action')) {
if (!function_exists('notif_approval')) {
function notif_approval($route, $id_karyawan, $judul, $content, $id_ref)
{
$CI =& get_instance();
$init = language_init();
$ch = curl_init();
$token_fcm = $init->db->get_where('users', ['id_karyawan' => $id_karyawan])->row()->token_fcm;
......@@ -60,6 +61,7 @@ if (!function_exists('notif_approval')) {
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'authentication: absenku123**'
]);
curl_setopt($ch, CURLOPT_USERAGENT, $CI->config->item('user_agent'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
......
......@@ -26,6 +26,7 @@ if(!function_exists('publishTarget')) {
curl_setopt($ch, CURLOPT_URL, "https://mb-producer.absenku.com/fcm?".http_build_query($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['authentication: absenku123**']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $this->config->item('user_agent'));
curl_exec($ch);
curl_close($ch);
}
......
......@@ -24,10 +24,7 @@
"ajax": {
"url": "<?= site_url('master/cabang/list_data') ?>",
"type": "GET",
"complete": function(data) {
reconfigure(data);
}
"type": "GET"
},
"aoColumnDefs": [{
......
......@@ -335,9 +335,6 @@
$(function() {
callmasktanggal();
reconfigure();
// checkpermission();
lightbox.option({
'imageFadeDuration': 100,
'resizeDuration': 100,
......@@ -628,7 +625,9 @@
// window.Pace.stop();
if (typeof request.responseJSON !== 'undefined') {
reconfigure(request);
if(request.responseJSON.csrf_token !== undefined) {
reconfigure(request);
}
}
var tabel = $('div.dataTables_scrollBody > table');
if (tabel.length > 0) {
......@@ -699,7 +698,7 @@
let doPromise = new Promise(function(resolve, reject) {
$.ajax({
url: hostname + ":2083",
url: hostname + ":" + <?= $this->config->item('socket_port') ?>,
headers: {
'X-Requested-With': 'XMLHttpRequest'
},
......@@ -739,7 +738,7 @@
socket.on('connect', function() {
socket.emit('connect_users', {
'id_karyawan': '<?= $this->session->userdata("id_karyawan") ?>'
'id_karyawan': '<?= $this->config->item("socket_room_prefix")."~".$this->session->userdata("id_karyawan") ?>'
});
});
......@@ -801,7 +800,7 @@
function refresh_token() {
if (socket !== undefined) {
socket.emit('refresh-token', {
'id_karyawan': '<?= $this->session->userdata("id_karyawan") ?>',
'id_karyawan': '<?= $this->config->item("socket_room_prefix")."~".$this->session->userdata("id_karyawan") ?>',
'_token': $('meta[name="csrf-token"]').attr('content'),
'refresh': true
});
......
......@@ -12,7 +12,6 @@
},
"require": {
"php": ">=5.3.7",
"luthier/luthier": "^1.0",
"wisembly/elephant.io": "^3.3",
"mpdf/mpdf": "^8.0",
"php-amqplib/php-amqplib": "^3.6",
......
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