Commit d2ac3ac2 by nurchamim

modul: Bug filter payroll komponen tidak tetap

status: selesai
keterangan:
-bug fix filter cabang dan departemen
-penyesuaian kolom sesuai dengan urutan master komponen
-menghilangkan alert error ketika pengambilan data pada datatable
-menghilangkan alert error pengambilan data
parent 1b36272f
<?php <?php
defined('BASEPATH') OR exit('No direct script access allowed'); defined('BASEPATH') or exit('No direct script access allowed');
class Data_komponen extends MY_Controller{ class Data_komponen extends MY_Controller
{
public function __construct(){ public function __construct()
{
parent::__construct(); parent::__construct();
$this->load->model('payroll/data_komponen_tdk_tetap/Data_komponen_m', 'model'); $this->load->model('payroll/data_komponen_tdk_tetap/Data_komponen_m', 'model');
} }
public function index() public function index()
{ {
$data['judul'] = 'Data Komponen Tidak Tetap'; $data['judul'] = 'Data Komponen Tidak Tetap';
$data['aktif'] = 'data_komponen_tdk_tetap'; $data['aktif'] = 'data_komponen_tdk_tetap';
$data['menu'] = $this->load->view('main_menu', $data, true); $data['menu'] = $this->load->view('main_menu', $data, true);
$data['content'] = $this->load->view('payroll/data_komponen_tdk_tetap/home', $data, true); $data['content'] = $this->load->view('payroll/data_komponen_tdk_tetap/home', $data, true);
$this->load->view('main_template', $data, false); $this->load->view('main_template', $data, false);
} }
public function view_data($bulan, $id_karyawan = 'all', $id_cabang = 'all', $id_departemen = 'all') public function view_data($bulan, $id_karyawan = 'all', $id_cabang = 'all', $id_departemen = 'all')
{ {
...@@ -25,27 +27,33 @@ class Data_komponen extends MY_Controller{ ...@@ -25,27 +27,33 @@ class Data_komponen extends MY_Controller{
$data['id_karyawan'] = $id_karyawan; $data['id_karyawan'] = $id_karyawan;
$data['id_cabang'] = $id_cabang; $data['id_cabang'] = $id_cabang;
$data['id_departemen'] = $id_departemen; $data['id_departemen'] = $id_departemen;
$this->load->view('payroll/data_komponen_tdk_tetap/list_data', $data); $this->load->view('payroll/data_komponen_tdk_tetap/list_data', $data);
} }
public function list_data($bulan, $id_karyawan = 'all', $id_cabang = 'all', $id_departemen = 'all') public function list_data($bulan, $id_karyawan = 'all', $id_cabang = 'all', $id_departemen = 'all')
{ {
$list = $this->model->get_datatables($id_karyawan, $id_cabang, $id_departemen); // decode URI
$get_pend = json_decode($this->model->tambah_pendapatan($bulan, $id_karyawan, $id_cabang, $id_departemen), true); $id_cabang = urldecode($id_cabang);
$get_pot = json_decode($this->model->tambah_potongan($bulan, $id_karyawan, $id_cabang, $id_departemen), true); $id_departemen = urldecode($id_departemen);
$data = array();
$bulan = date('Y-m', strtotime('01-'.$bulan)); $list = $this->model->get_datatables($id_karyawan, $id_cabang, $id_departemen);
$no = $_GET['start']; $get_pend = json_decode($this->model->tambah_pendapatan($bulan, $id_karyawan, $id_cabang, $id_departemen), true);
$get_pot = json_decode($this->model->tambah_potongan($bulan, $id_karyawan, $id_cabang, $id_departemen), true);
$data = array();
$bulan = date('Y-m', strtotime('01-' . $bulan));
$no = $_GET['start'];
$cek_data = false;
// jika ada data pendapatan / potongan // jika ada data pendapatan / potongan
if (count($get_pend) > 0 || count($get_pot) > 0) { if (count($get_pend) > 0 || count($get_pot) > 0) {
foreach ($list as $field) { foreach ($list as $field) {
$no++; $no++;
$row = array(); $row = array();
$row[] = $no; $row[] = $no;
$row[] = $field->nama_lengkap."<br><b>".$field->nik."</b>"; $row[] = $field->nama_lengkap . "<br><b>" . $field->nik . "</b>";
$total_pendapatan = 0; $total_pendapatan = 0;
if (count($get_pend[$field->id_karyawan]) > 0) { if (count($get_pend[$field->id_karyawan]) > 0) {
$cek_data = true;
// show cabang, departemen, jabatan // show cabang, departemen, jabatan
$row[] = $get_pend[$field->id_karyawan][0]['cabang']; $row[] = $get_pend[$field->id_karyawan][0]['cabang'];
$row[] = $get_pend[$field->id_karyawan][0]['departemen']; $row[] = $get_pend[$field->id_karyawan][0]['departemen'];
...@@ -54,17 +62,18 @@ class Data_komponen extends MY_Controller{ ...@@ -54,17 +62,18 @@ class Data_komponen extends MY_Controller{
$pendapatan = $komponen['nominal_tunjangan']; $pendapatan = $komponen['nominal_tunjangan'];
$nominalWithButton = ' $nominalWithButton = '
<div class="nominal-with-button"> <div class="nominal-with-button">
<span>'.number_format($komponen['nominal_tunjangan'],0,',','.').'</span> <span>' . number_format($komponen['nominal_tunjangan'], 0, ',', '.') . '</span>
<button class="btn-link border-0 text-warning" data-toggle="modal" data-target="#modal-nominal" data-item="'.md5($komponen['id_karyawan'].$komponen['id_item'].$bulan.$this->id_company).'" data-komponen="pendapatan" data-nominal="'.number_format($komponen['nominal_tunjangan'],0,',','.').'" data-nm_komponen="'.$komponen['nm_tunjangan'].'"><i class="fa fa-edit (alias) "></i></button> <button class="btn-link border-0 text-warning" data-toggle="modal" data-target="#modal-nominal" data-item="' . md5($komponen['id_karyawan'] . $komponen['id_item'] . $bulan . $this->id_company) . '" data-komponen="pendapatan" data-nominal="' . number_format($komponen['nominal_tunjangan'], 0, ',', '.') . '" data-nm_komponen="' . $komponen['nm_tunjangan'] . '"><i class="fa fa-edit (alias) "></i></button>
</div>'; </div>';
$row[] = $nominalWithButton; $row[] = $nominalWithButton;
$total_pendapatan += $pendapatan; $total_pendapatan += $pendapatan;
} }
$row[] = number_format($total_pendapatan,0,',','.'); $row[] = number_format($total_pendapatan, 0, ',', '.');
} }
$total_potongan = 0; $total_potongan = 0;
if (count($get_pot[$field->id_karyawan]) > 0) { if (count($get_pot[$field->id_karyawan]) > 0) {
$cek_data = true;
// show cabang, departemen, jabatan jika tidak ada data pendapatan // show cabang, departemen, jabatan jika tidak ada data pendapatan
if (empty($get_pend[$field->id_karyawan])) { if (empty($get_pend[$field->id_karyawan])) {
$row[] = $get_pot[$field->id_karyawan][0]['cabang']; $row[] = $get_pot[$field->id_karyawan][0]['cabang'];
...@@ -75,33 +84,35 @@ class Data_komponen extends MY_Controller{ ...@@ -75,33 +84,35 @@ class Data_komponen extends MY_Controller{
$potongan = $komponen['nominal_potongan']; $potongan = $komponen['nominal_potongan'];
$nominalWithButton = ' $nominalWithButton = '
<div class="nominal-with-button"> <div class="nominal-with-button">
<span>'.number_format($komponen['nominal_potongan'],0,',','.').'</span> <span>' . number_format($komponen['nominal_potongan'], 0, ',', '.') . '</span>
<button class="btn-link border-0 text-warning" data-toggle="modal" data-target="#modal-nominal" data-item="'.md5($komponen['id_karyawan'].$komponen['id_item'].$bulan.$this->id_company).'" data-komponen="potongan" data-nominal="'.number_format($komponen['nominal_potongan'],0,',','.').'" data-nm_komponen="'.$komponen['nm_potongan'].'"><i class="fa fa-edit (alias) "></i></button> <button class="btn-link border-0 text-warning" data-toggle="modal" data-target="#modal-nominal" data-item="' . md5($komponen['id_karyawan'] . $komponen['id_item'] . $bulan . $this->id_company) . '" data-komponen="potongan" data-nominal="' . number_format($komponen['nominal_potongan'], 0, ',', '.') . '" data-nm_komponen="' . $komponen['nm_potongan'] . '"><i class="fa fa-edit (alias) "></i></button>
</div>'; </div>';
$row[] = $nominalWithButton; $row[] = $nominalWithButton;
$total_potongan += $potongan; $total_potongan += $potongan;
} }
$row[] = number_format($total_potongan,0,',','.'); $row[] = number_format($total_potongan, 0, ',', '.');
} }
$data[] = $row; $data[] = $row;
} }
} }
$output = array("draw" => $_GET['draw'], $output = array(
"recordsTotal" => $this->model->count_all($id_karyawan, $id_cabang, $id_departemen), "draw" => $_GET['draw'],
"recordsFiltered" => $this->model->count_filtered($id_karyawan, $id_cabang, $id_departemen), "recordsTotal" => ($cek_data == true) ? $this->model->count_all($id_karyawan, $id_cabang, $id_departemen) : 0,
"data" => $data); "recordsFiltered" => ($cek_data == true) ? $this->model->count_filtered($id_karyawan, $id_cabang, $id_departemen) : 0,
"data" => $data
);
$output = __response($this->MY_response, $output); $output = __response($this->MY_response, $output);
echo json_encode($output); echo json_encode($output);
} }
public function form() public function form()
{ {
$this->load->view('payroll/data_komponen_tdk_tetap/form'); $this->load->view('payroll/data_komponen_tdk_tetap/form');
} }
public function update() public function update()
{ {
...@@ -111,16 +122,16 @@ class Data_komponen extends MY_Controller{ ...@@ -111,16 +122,16 @@ class Data_komponen extends MY_Controller{
if ($master_komponen == 'pendapatan') { if ($master_komponen == 'pendapatan') {
$komponen = 'nominal_tunjangan'; $komponen = 'nominal_tunjangan';
}else if ($master_komponen == 'potongan') { } else if ($master_komponen == 'potongan') {
$komponen = 'nominal_potongan'; $komponen = 'nominal_potongan';
}else{ } else {
return __response_update(false); return __response_update(false);
} }
$data = array( $data = array(
'user_update' => $this->nik_karyawan.' - '.$this->nm_karyawan, 'user_update' => $this->nik_karyawan . ' - ' . $this->nm_karyawan,
'tgl_update' => date('Y-m-d H:i:s'), 'tgl_update' => date('Y-m-d H:i:s'),
$komponen => str_replace('.','',$nominal) $komponen => str_replace('.', '', $nominal)
); );
$this->model->update($data, $master_komponen, $id_item); $this->model->update($data, $master_komponen, $id_item);
...@@ -130,10 +141,10 @@ class Data_komponen extends MY_Controller{ ...@@ -130,10 +141,10 @@ class Data_komponen extends MY_Controller{
{ {
$search = $this->input->get("q"); $search = $this->input->get("q");
if($this->level_user == "5"){ # KEPALA CABANG if ($this->level_user == "5") { # KEPALA CABANG
if($this->multi_cabang == true){ if ($this->multi_cabang == true) {
$this->db->where_in('id_cabang', $this->id_cabang_arr); $this->db->where_in('id_cabang', $this->id_cabang_arr);
}else{ } else {
$this->db->where('id_cabang', $this->id_cabang); $this->db->where('id_cabang', $this->id_cabang);
} }
} }
...@@ -150,29 +161,34 @@ class Data_komponen extends MY_Controller{ ...@@ -150,29 +161,34 @@ class Data_komponen extends MY_Controller{
$json = []; $json = [];
foreach ($result as $rows) { foreach ($result as $rows) {
$json[] = ['id' =>$rows->kode, $json[] = [
'kodecabang'=>$rows->kode, 'id' => $rows->kode,
'namacabang'=>$rows->nama, 'kodecabang' => $rows->kode,
'text' =>$rows->kode." - ".$rows->nama]; 'namacabang' => $rows->nama,
'text' => $rows->kode . " - " . $rows->nama
];
} }
echo json_encode($json); echo json_encode($json);
} }
public function departemen_by_cabang($id_cabang = null) public function departemen_by_cabang($id_cabang = null)
{ {
$search = $this->input->get("q"); // decode URI
$id_cabang = urldecode($id_cabang);
if($this->level_user == "2"){ # KEPALA DEPARTEMEN $search = $this->input->get("q");
if($this->multi_departemen == true){
if ($this->level_user == "2") { # KEPALA DEPARTEMEN
if ($this->multi_departemen == true) {
$this->db->where_in('data_karyawan.id_departemen', $this->id_departemen_arr); $this->db->where_in('data_karyawan.id_departemen', $this->id_departemen_arr);
}else{ } else {
$this->db->where('data_karyawan.id_departemen', $this->id_departemen); $this->db->where('data_karyawan.id_departemen', $this->id_departemen);
} }
} }
$this->db->select('master_departemen.id_departemen, master_departemen.kode, master_departemen.nama'); $this->db->select('master_departemen.id_departemen, master_departemen.kode, master_departemen.nama');
$this->db->join('data_karyawan','data_karyawan.id_departemen = master_departemen.id_departemen'); $this->db->join('data_karyawan', 'data_karyawan.id_departemen = master_departemen.id_departemen');
$this->db->join('master_cabang','data_karyawan.id_cabang = master_cabang.id_cabang'); $this->db->join('master_cabang', 'data_karyawan.id_cabang = master_cabang.id_cabang');
$this->db->where('master_departemen.id_company', $this->id_company); $this->db->where('master_departemen.id_company', $this->id_company);
$this->db->where('master_cabang.kode', $id_cabang); $this->db->where('master_cabang.kode', $id_cabang);
...@@ -187,12 +203,13 @@ class Data_komponen extends MY_Controller{ ...@@ -187,12 +203,13 @@ class Data_komponen extends MY_Controller{
$result = $this->db->get()->result(); $result = $this->db->get()->result();
$json = []; $json = [];
foreach ($result as $rows) { foreach ($result as $rows) {
$json[] = ['id' =>$rows->kode, $json[] = [
'kodedepartemen'=>$rows->kode, 'id' => $rows->kode,
'namadepartemen'=>$rows->nama, 'kodedepartemen' => $rows->kode,
'text' =>$rows->kode." - ".$rows->nama]; 'namadepartemen' => $rows->nama,
'text' => $rows->kode . " - " . $rows->nama
];
} }
echo json_encode($json); echo json_encode($json);
} }
} }
<?php <?php
defined('BASEPATH') OR exit('No direct script access allowed'); defined('BASEPATH') or exit('No direct script access allowed');
class Data_komponen_import extends MY_Controller { class Data_komponen_import extends MY_Controller
{
public function __construct(){ public function __construct()
{
parent::__construct(); parent::__construct();
$this->load->model('payroll/data_komponen_tdk_tetap/Data_komponen_import_m', 'model'); $this->load->model('payroll/data_komponen_tdk_tetap/Data_komponen_import_m', 'model');
$this->load->library(array('PHPExcel/Excel', 'PHPExcel/PHPExcel', 'Uploadfile')); $this->load->library(array('PHPExcel/Excel', 'PHPExcel/PHPExcel', 'Uploadfile'));
} }
public function index(){ public function index()
$data['judul'] = 'Import Data Komponen Tidak Tetap'; {
$data['aktif'] = 'data_komponen_tdk_tetap'; $data['judul'] = 'Import Data Komponen Tidak Tetap';
$data['aktif'] = 'data_komponen_tdk_tetap';
$data['menu'] = $this->load->view('main_menu', $data, true); $data['menu'] = $this->load->view('main_menu', $data, true);
$data['content'] = $this->load->view('payroll/data_komponen_tdk_tetap/import/home', $data, true); $data['content'] = $this->load->view('payroll/data_komponen_tdk_tetap/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('payroll/data_komponen_tdk_tetap/import/form_template_import'); {
} $this->load->view('payroll/data_komponen_tdk_tetap/import/form_template_import');
}
public function view_data(){ public function view_data()
{
$data['master'] = json_decode($this->model->master_komponen(), true); $data['master'] = json_decode($this->model->master_komponen(), true);
$this->load->view('payroll/data_komponen_tdk_tetap/import/list_data', $data); $this->load->view('payroll/data_komponen_tdk_tetap/import/list_data', $data);
} }
public function list_data(){ public function list_data()
$get_pend = json_decode($this->model->tambah_pendapatan(), true); {
$get_pot = json_decode($this->model->tambah_potongan(), true); $get_pend = json_decode($this->model->tambah_pendapatan(), true);
$temp = ((count($get_pend) > 0) ? 'pend' : 'pot'); $get_pot = json_decode($this->model->tambah_potongan(), true);
$list = $this->model->get_datatables($temp); $temp = ((count($get_pend) > 0) ? 'pend' : 'pot');
$list = $this->model->get_datatables($temp);
// print_r($get_pot); // print_r($get_pot);
$data = array(); $data = array();
$no = $_GET['start']; $no = $_GET['start'];
foreach ($list as $field) { foreach ($list as $field) {
$no++; $no++;
$row = array(); $row = array();
$row[] = $no; $row[] = $no;
$row[] = ($field->id_karyawan) ? $field->id_karyawan : '-'; $row[] = ($field->id_karyawan) ? $field->id_karyawan : '-';
$row[] = $field->nm_karyawan."<br><b>".$field->nik."</b>"; $row[] = $field->nm_karyawan . "<br><b>" . $field->nik . "</b>";
$row[] = indo_date(strtotime($field->bulan.'-01'), 'F Y'); $row[] = indo_date(strtotime($field->bulan . '-01'), 'F Y');
$row[] = $field->cabang; $row[] = $field->cabang;
$row[] = $field->departemen; $row[] = $field->departemen;
$row[] = $field->jabatan; $row[] = $field->jabatan;
if (count($get_pend[$field->id_karyawan]) > 0) { if (count($get_pend[$field->id_karyawan]) > 0) {
foreach ($get_pend[$field->id_karyawan] as $komponen) { foreach ($get_pend[$field->id_karyawan] as $komponen) {
$row[] = number_format($komponen['nominal_tunjangan'],0,',','.'); $row[] = number_format($komponen['nominal_tunjangan'], 0, ',', '.');
} }
} }
if (count($get_pot[$field->id_karyawan]) > 0) { if (count($get_pot[$field->id_karyawan]) > 0) {
foreach ($get_pot[$field->id_karyawan] as $komponen) { foreach ($get_pot[$field->id_karyawan] as $komponen) {
$row[] = number_format($komponen['nominal_potongan'],0,',','.'); $row[] = number_format($komponen['nominal_potongan'], 0, ',', '.');
} }
} }
$data[] = $row; $data[] = $row;
} }
$output = array("draw" => $_GET['draw'], $output = array(
"recordsTotal" => $this->model->count_all($temp), "draw" => $_GET['draw'],
"recordsFiltered" => $this->model->count_filtered($temp), "recordsTotal" => $this->model->count_all($temp),
"data" => $data); "recordsFiltered" => $this->model->count_filtered($temp),
"data" => $data
);
$output = __response($this->MY_response, $output); $output = __response($this->MY_response, $output);
echo json_encode($output); echo json_encode($output);
} }
function download_template($bulan, $id_cabang="-", $id_departemen="-") function download_template($bulan, $id_cabang = "-", $id_departemen = "-")
{ {
if($id_cabang != "-") { if ($id_cabang != "-") {
$nama_cabang = $this->db->select("nama") $nama_cabang = $this->db->select("nama")
->from("master_cabang") ->from("master_cabang")
->where("id_cabang", $id_cabang) ->where("id_cabang", $id_cabang)
->where("id_company",$this->id_company) ->where("id_company", $this->id_company)
->get() ->get()
->row("nama"); ->row("nama");
$filename = "Template Import Data Komponen Tidak Tetap Cabang " . $nama_cabang; $filename = "Template Import Data Komponen Tidak Tetap Cabang " . $nama_cabang;
}else{ } else {
$filename = "Template Import Data Komponen Tidak Tetap Semua Cabang "; $filename = "Template Import Data Komponen Tidak Tetap Semua Cabang ";
} }
if($id_departemen != "-") { if ($id_departemen != "-") {
$nama_departemen = $this->db->select("nama") $nama_departemen = $this->db->select("nama")
->from("master_departemen") ->from("master_departemen")
->where("id_departemen", $id_departemen) ->where("id_departemen", $id_departemen)
->where("id_company",$this->id_company) ->where("id_company", $this->id_company)
->get() ->get()
->row("nama"); ->row("nama");
$filename .= " Departemen " . $nama_departemen; $filename .= " Departemen " . $nama_departemen;
}else{ } else {
$filename .= " Semua Departemen"; $filename .= " Semua Departemen";
} }
$data['nama'] = $filename; $data['nama'] = $filename;
$data['bulan'] = $bulan; $data['bulan'] = $bulan;
$data['data'] = $this->model->getDataKaryawan($id_cabang, $id_departemen); $data['data'] = $this->model->getDataKaryawan($id_cabang, $id_departemen);
$data['master'] = json_decode($this->model->master_komponen(), true); $data['master'] = json_decode($this->model->master_komponen(), true);
$data['is_excel'] = true; $data['is_excel'] = true;
$output = true; $output = true;
$sb_view = $this->load->view('payroll/data_komponen_tdk_tetap/import/download', $data, $output); $sb_view = $this->load->view('payroll/data_komponen_tdk_tetap/import/download', $data, $output);
// echo $sb_view;exit; // echo $sb_view;exit;
$komponen = $data['master']; $komponen = $data['master'];
...@@ -115,19 +123,19 @@ class Data_komponen_import extends MY_Controller { ...@@ -115,19 +123,19 @@ class Data_komponen_import extends MY_Controller {
if (count($komponen['potongan']) > 0) { if (count($komponen['potongan']) > 0) {
if (count($komponen['pendapatan']) > 0) { if (count($komponen['pendapatan']) > 0) {
$merge_komponen = array_merge($merge_komponen, $komponen['potongan']); $merge_komponen = array_merge($merge_komponen, $komponen['potongan']);
}else{ } else {
$merge_komponen = array_merge($komponen['potongan']); $merge_komponen = array_merge($komponen['potongan']);
} }
} }
}else{ } else {
// pendapatan + potongan = 0 // pendapatan + potongan = 0
return ; return;
} }
// column dinamis dari header table // column dinamis dari header table
$column_param = array( $column_param = array(
'A' => ['align' => 'center', 'valign' => 'middle'], 'A' => ['align' => 'center', 'valign' => 'middle'],
'B' => ['width' => 10, 'align' => 'center', 'valign' => 'middle', 'format'=>'text'], 'B' => ['width' => 10, 'align' => 'center', 'valign' => 'middle', 'format' => 'text'],
'C' => ['width' => 40, 'lock' => true], 'C' => ['width' => 40, 'lock' => true],
'D' => ['width' => 10, 'lock' => true], 'D' => ['width' => 10, 'lock' => true],
'E' => ['width' => 20, 'lock' => true], 'E' => ['width' => 20, 'lock' => true],
...@@ -136,95 +144,94 @@ class Data_komponen_import extends MY_Controller { ...@@ -136,95 +144,94 @@ class Data_komponen_import extends MY_Controller {
'H' => ['width' => 20, 'align' => 'right', 'valign' => 'middle', 'rupiah' => true, 'lock' => true], 'H' => ['width' => 20, 'align' => 'right', 'valign' => 'middle', 'rupiah' => true, 'lock' => true],
); );
$col = 'I'; $col = 'I';
for ($i=0; $i < ($total_column-7); $i++) { for ($i = 0; $i < ($total_column - 7); $i++) {
// jika dari persentase gapok maka di lock // jika dari persentase gapok maka di lock
if ($merge_komponen[$i]['flag_persentase_gapok'] == '1') { if ($merge_komponen[$i]['flag_persentase_gapok'] == '1') {
$column_param[$col] = ['align' => 'right', 'valign' => 'middle', 'format'=>'text', 'rupiah' => true, 'lock' => true]; $column_param[$col] = ['align' => 'right', 'valign' => 'middle', 'format' => 'text', 'rupiah' => true, 'lock' => true];
}else{ } else {
$column_param[$col] = ['align' => 'right', 'valign' => 'middle', 'format'=>'text', 'rupiah' => true]; $column_param[$col] = ['align' => 'right', 'valign' => 'middle', 'format' => 'text', 'rupiah' => true];
} }
$col++; $col++;
} }
$param = [ $param = [
'download' => true, 'download' => true,
'cLength' => $total_column, 'cLength' => $total_column,
'file_name' => strtoupper($filename), 'file_name' => strtoupper($filename),
'paper_size' => 'A4', 'paper_size' => 'A4',
'font-size' => 12, 'font-size' => 12,
// 'pagebreak' => true, // 'pagebreak' => true,
'page_margin' => ['top' => 0, 'right' => 0.75, 'left' => 0.75, 'botom' => 0], 'page_margin' => ['top' => 0, 'right' => 0.75, 'left' => 0.75, 'botom' => 0],
'orientation' => 'potrait', 'orientation' => 'potrait',
'header' => [ 'header' => [
'1' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'], '1' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'],
'2' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'], '2' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'],
'3' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'], '3' => ['merge' => true, 'align' => 'center', 'weight' => 'bold'],
], ],
// 'freezecolumn' => ['D7'], // 'freezecolumn' => ['D7'],
'thead' => ['4', '5'], 'thead' => ['4', '5'],
'tbody' => [ 'tbody' => [
'start' => '4', 'start' => '4',
'height' => 13, 'height' => 13,
// 'runFunction' => ['highlightlibur' => 'P'], // 'runFunction' => ['highlightlibur' => 'P'],
'wrap' => ['B', 'C', 'D', 'E', 'F'], 'wrap' => ['B', 'C', 'D', 'E', 'F'],
'column' => $column_param, 'column' => $column_param,
], ],
]; ];
$this->excel->generateExcel($sb_view, $param); $this->excel->generateExcel($sb_view, $param);
} }
public function import_data_excel() public function import_data_excel()
{ {
if(!empty($_FILES['file']['name'])) { if (!empty($_FILES['file']['name'])) {
$tahunbulan = date('Ym'); $tahunbulan = date('Ym');
$fileUpload['fname'] = 'file'; $fileUpload['fname'] = 'file';
$fileUpload['location'] = 'template_data_komponen/'.$tahunbulan; $fileUpload['location'] = 'template_data_komponen/' . $tahunbulan;
$fileUpload['allowed'] = 'xls|xlsx'; $fileUpload['allowed'] = 'xls|xlsx';
$fileUpload['compress_image'] = false; $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]);
} }
$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 = 6; $row < ($highestRow-4); $row++) { for ($row = 6; $row < ($highestRow - 4); $row++) {
$dataset = array(); $dataset = array();
for ($column = 'B'; $column != $highestColumm; $column++) { for ($column = 'B'; $column != $highestColumm; $column++) {
$head = $objPHPExcel->setActiveSheetIndex(0)->getCell($column . '5')->getValue(); $head = $objPHPExcel->setActiveSheetIndex(0)->getCell($column . '5')->getValue();
if (empty($head)) { if (empty($head)) {
$head = $objPHPExcel->setActiveSheetIndex(0)->getCell($column . '4')->getValue(); $head = $objPHPExcel->setActiveSheetIndex(0)->getCell($column . '4')->getValue();
} }
if (str_contains($head, '(')) { if (str_contains($head, '(')) {
$head = (substr($head, -8, 1) != '(') ? substr($head, 0, -8) : substr($head, 0, -9); $head = (substr($head, -8, 1) != '(') ? substr($head, 0, -8) : substr($head, 0, -9);
} }
$cell = $objPHPExcel->setActiveSheetIndex(0)->getCell($column . $row)->getValue(); $cell = $objPHPExcel->setActiveSheetIndex(0)->getCell($column . $row)->getValue();
$dataset[$head] = $cell; $dataset[$head] = $cell;
} }
$data_insert[] = $dataset; $data_insert[] = $dataset;
}
}
$results = array_filter($data_insert); $results = array_filter($data_insert);
$master_komponen = $this->model->master_komponen(); $master_komponen = $this->model->master_komponen();
$komponen = json_decode($master_komponen, true); $komponen = json_decode($master_komponen, true);
...@@ -234,21 +241,21 @@ class Data_komponen_import extends MY_Controller { ...@@ -234,21 +241,21 @@ class Data_komponen_import extends MY_Controller {
$data_pendapatan = array(); $data_pendapatan = array();
$data_potongan = array(); $data_potongan = array();
for ($i_data=0; $i_data < count($results); $i_data++) { for ($i_data = 0; $i_data < count($results); $i_data++) {
if ($jml_pend > 0) { if ($jml_pend > 0) {
for ($i_pend=$jml_header; $i_pend < ($jml_header+$jml_pend); $i_pend++) { for ($i_pend = $jml_header; $i_pend < ($jml_header + $jml_pend); $i_pend++) {
$nm_pendapatan = array_keys($results[$i_data])[$i_pend]; $nm_pendapatan = array_keys($results[$i_data])[$i_pend];
$data_pendapatan[] = [ $data_pendapatan[] = [
'nik' => $results[$i_data][array_keys($results[$i_data])[0]], 'nik' => $results[$i_data][array_keys($results[$i_data])[0]],
'nm_karyawan' => $results[$i_data][array_keys($results[$i_data])[1]], 'nm_karyawan' => $results[$i_data][array_keys($results[$i_data])[1]],
'bulan' => date('Y-m', strtotime('01-'.$results[$i_data][array_keys($results[$i_data])[2]])), 'bulan' => date('Y-m', strtotime('01-' . $results[$i_data][array_keys($results[$i_data])[2]])),
'cabang' => $results[$i_data][array_keys($results[$i_data])[3]], 'cabang' => $results[$i_data][array_keys($results[$i_data])[3]],
'departemen' => $results[$i_data][array_keys($results[$i_data])[4]], 'departemen' => $results[$i_data][array_keys($results[$i_data])[4]],
'jabatan' => $results[$i_data][array_keys($results[$i_data])[5]], 'jabatan' => $results[$i_data][array_keys($results[$i_data])[5]],
'gapok' => $results[$i_data][array_keys($results[$i_data])[6]], 'gapok' => $results[$i_data][array_keys($results[$i_data])[6]],
'nominal_tunjangan' => $results[$i_data][$nm_pendapatan], 'nominal_tunjangan' => $results[$i_data][$nm_pendapatan],
'nm_tunjangan' => $nm_pendapatan, 'nm_tunjangan' => $nm_pendapatan,
'user_input' => $this->nik_karyawan. ' - ' .$this->nm_karyawan, 'user_input' => $this->nik_karyawan . ' - ' . $this->nm_karyawan,
'id_company' => $this->id_company 'id_company' => $this->id_company
]; ];
} }
...@@ -256,23 +263,23 @@ class Data_komponen_import extends MY_Controller { ...@@ -256,23 +263,23 @@ class Data_komponen_import extends MY_Controller {
if ($jml_pot > 0) { if ($jml_pot > 0) {
if ($jml_pend > 0) { if ($jml_pend > 0) {
$header = $jml_header+$jml_pend; $header = $jml_header + $jml_pend;
}else{ } else {
$header = $jml_header; $header = $jml_header;
} }
for ($i_pot=$header; $i_pot < ($header+$jml_pot); $i_pot++) { for ($i_pot = $header; $i_pot < ($header + $jml_pot); $i_pot++) {
$nm_potongan = array_keys($results[$i_data])[$i_pot]; $nm_potongan = array_keys($results[$i_data])[$i_pot];
$data_potongan[] = [ $data_potongan[] = [
'nik' => $results[$i_data][array_keys($results[$i_data])[0]], 'nik' => $results[$i_data][array_keys($results[$i_data])[0]],
'nm_karyawan' => $results[$i_data][array_keys($results[$i_data])[1]], 'nm_karyawan' => $results[$i_data][array_keys($results[$i_data])[1]],
'bulan' => date('Y-m', strtotime('01-'.$results[$i_data][array_keys($results[$i_data])[2]])), 'bulan' => date('Y-m', strtotime('01-' . $results[$i_data][array_keys($results[$i_data])[2]])),
'cabang' => $results[$i_data][array_keys($results[$i_data])[3]], 'cabang' => $results[$i_data][array_keys($results[$i_data])[3]],
'departemen' => $results[$i_data][array_keys($results[$i_data])[4]], 'departemen' => $results[$i_data][array_keys($results[$i_data])[4]],
'jabatan' => $results[$i_data][array_keys($results[$i_data])[5]], 'jabatan' => $results[$i_data][array_keys($results[$i_data])[5]],
'gapok' => $results[$i_data][array_keys($results[$i_data])[6]], 'gapok' => $results[$i_data][array_keys($results[$i_data])[6]],
'nominal_potongan' => $results[$i_data][$nm_potongan], 'nominal_potongan' => $results[$i_data][$nm_potongan],
'nm_potongan' => $nm_potongan, 'nm_potongan' => $nm_potongan,
'user_input' => $this->nik_karyawan. ' - ' .$this->nm_karyawan, 'user_input' => $this->nik_karyawan . ' - ' . $this->nm_karyawan,
'id_company' => $this->id_company 'id_company' => $this->id_company
]; ];
} }
...@@ -280,7 +287,7 @@ class Data_komponen_import extends MY_Controller { ...@@ -280,7 +287,7 @@ class Data_komponen_import extends MY_Controller {
} }
$this->db->trans_strict(); $this->db->trans_strict();
$this->db->trans_start(); $this->db->trans_start();
if (count($data_pendapatan) > 0) { if (count($data_pendapatan) > 0) {
// hapus data payroll_tunj_tdk_tetap_temp // hapus data payroll_tunj_tdk_tetap_temp
...@@ -304,30 +311,32 @@ class Data_komponen_import extends MY_Controller { ...@@ -304,30 +311,32 @@ class Data_komponen_import extends MY_Controller {
} }
} }
$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();
$message = ["message"=>'<font color="#eb3a28"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal diimport</font>']; $message = ["message" => '<font color="#eb3a28"><i class="fa fa-exclamation-triangle">&nbsp;</i>Data gagal diimport</font>'];
return __response_save(false,$message); return __response_save(false, $message);
}else{ } else {
$this->db->trans_commit(); $this->db->trans_commit();
$message = ["message"=>'<font color="#009900"><i class="fa fa-check-square">&nbsp;</i>Data berhasil diimport</font>']; $message = ["message" => '<font color="#009900"><i class="fa fa-check-square">&nbsp;</i>Data berhasil diimport</font>'];
return __response_save(true,$message); return __response_save(true, $message);
} }
} }
public function publish_all() public function publish_all()
{ {
$get_pend = json_decode($this->model->tambah_pendapatan(), true); $get_pend = json_decode($this->model->tambah_pendapatan(), true);
$get_pot = json_decode($this->model->tambah_potongan(), true); $get_pot = json_decode($this->model->tambah_potongan(), true);
$temp = ((count($get_pend) > 0) ? 'pend' : 'pot'); $temp = ((count($get_pend) > 0) ? 'pend' : 'pot');
$list = $this->model->get_datatables($temp); $list = $this->model->get_datatables($temp);
$data_pendapatan = array(); $data_pendapatan = array();
$data_potongan = array(); $data_potongan = array();
$data_pendapatan_delete = array(); // utk table payroll_tunj_tdk_tetap_temp $data_pendapatan_delete = array(); // utk table payroll_tunj_tdk_tetap_temp
$data_potongan_delete = array(); // utk table payroll_pot_tdk_tetap_temp $data_potongan_delete = array(); // utk table payroll_pot_tdk_tetap_temp
$bulan = ''; $bulan = '';
$cabang = '';
$departemen = '';
foreach ($list as $field) { foreach ($list as $field) {
if (count($get_pend[$field->id_karyawan]) > 0) { if (count($get_pend[$field->id_karyawan]) > 0) {
foreach ($get_pend[$field->id_karyawan] as $key) { foreach ($get_pend[$field->id_karyawan] as $key) {
...@@ -350,9 +359,11 @@ class Data_komponen_import extends MY_Controller { ...@@ -350,9 +359,11 @@ class Data_komponen_import extends MY_Controller {
'flag_pph21' => '0', 'flag_pph21' => '0',
'flag_pot_absensi' => '0', 'flag_pot_absensi' => '0',
'id_company' => $this->id_company, 'id_company' => $this->id_company,
'user_input' => $this->nik_karyawan. ' - ' .$this->nm_karyawan 'user_input' => $this->nik_karyawan . ' - ' . $this->nm_karyawan
]; ];
$data_pendapatan_delete[] = $key['nik'].$key['bulan'].$key['nm_tunjangan'].$this->id_company; $data_pendapatan_delete[] = $key['nik'] . $key['bulan'] . $key['nm_tunjangan'] . $this->id_company . $key['cabang'] . $key['departemen'];
$cabang = $key['cabang'];
$departemen = $key['departemen'];
} }
$bulan = $key['bulan']; $bulan = $key['bulan'];
} }
...@@ -378,70 +389,84 @@ class Data_komponen_import extends MY_Controller { ...@@ -378,70 +389,84 @@ class Data_komponen_import extends MY_Controller {
'flag_pph21' => '0', 'flag_pph21' => '0',
'flag_pot_absensi' => '0', 'flag_pot_absensi' => '0',
'id_company' => $this->id_company, 'id_company' => $this->id_company,
'user_input' => $this->nik_karyawan. ' - ' .$this->nm_karyawan 'user_input' => $this->nik_karyawan . ' - ' . $this->nm_karyawan
]; ];
$data_potongan_delete[] = $key['nik'].$key['bulan'].$key['nm_potongan'].$this->id_company; $data_potongan_delete[] = $key['nik'] . $key['bulan'] . $key['nm_potongan'] . $this->id_company . $key['cabang'] . $key['departemen'];
$cabang = $key['cabang'];
$departemen = $key['departemen'];
} }
$bulan = $key['bulan']; $bulan = $key['bulan'];
} }
} }
} }
$this->db->trans_start(); $this->db->trans_start();
if(count($data_pendapatan_delete) > 0){ if (count($data_pendapatan_delete) > 0) {
$this->db->where_in('concat(nik,bulan,nm_tunjangan,id_company)', $data_pendapatan_delete); $this->db->where_in('concat(nik,bulan,nm_tunjangan,id_company,cabang,departemen)', $data_pendapatan_delete);
$this->db->delete('payroll_tunj_tdk_tetap_temp'); $this->db->delete('payroll_tunj_tdk_tetap_temp');
} }
if (count($data_pendapatan) > 0) { if (count($data_pendapatan) > 0) {
// hapus semua pot tdk tetap pada periode yang di import // hapus semua pot tdk tetap pada periode yang di import
$this->db->where('periode', $bulan); $this->db->where('periode', $bulan);
if (!empty($cabang)) {
$this->db->where('cabang', $cabang);
}
if (!empty($departemen)) {
$this->db->where('departemen', $departemen);
}
$this->db->delete('payroll_tunj_tdk_tetap_m'); $this->db->delete('payroll_tunj_tdk_tetap_m');
// insert // insert
$this->db->insert_batch('payroll_tunj_tdk_tetap_m', $data_pendapatan); $this->db->insert_batch('payroll_tunj_tdk_tetap_m', $data_pendapatan);
} }
if(count($data_potongan_delete) > 0){ if (count($data_potongan_delete) > 0) {
$this->db->where_in('concat(nik,bulan,nm_potongan,id_company)', $data_potongan_delete); $this->db->where_in('concat(nik,bulan,nm_potongan,id_company,cabang,departemen)', $data_potongan_delete);
$this->db->delete('payroll_pot_tdk_tetap_temp'); $this->db->delete('payroll_pot_tdk_tetap_temp');
} }
if (count($data_potongan) > 0) { if (count($data_potongan) > 0) {
// hapus semua pot tdk tetap pada periode yang di import // hapus semua pot tdk tetap pada periode yang di import
$this->db->where('periode', $bulan); $this->db->where('periode', $bulan);
if (!empty($cabang)) {
$this->db->where('cabang', $cabang);
}
if (!empty($departemen)) {
$this->db->where('departemen', $departemen);
}
$this->db->delete('payroll_pot_tdk_tetap_m'); $this->db->delete('payroll_pot_tdk_tetap_m');
// insert // insert
$this->db->insert_batch('payroll_pot_tdk_tetap_m', $data_potongan); $this->db->insert_batch('payroll_pot_tdk_tetap_m', $data_potongan);
} }
$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->trans_start(); $this->db->trans_start();
$this->db->where("id_company", $this->id_company); $this->db->where("id_company", $this->id_company);
$this->db->delete("payroll_tunj_tdk_tetap_temp"); $this->db->delete("payroll_tunj_tdk_tetap_temp");
$this->db->where("id_company", $this->id_company); $this->db->where("id_company", $this->id_company);
$this->db->delete("payroll_pot_tdk_tetap_temp"); $this->db->delete("payroll_pot_tdk_tetap_temp");
$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_delete(false); return __response_delete(false);
}else{ } else {
$this->db->trans_commit(); $this->db->trans_commit();
return __response_delete(true); return __response_delete(true);
} }
} }
} }
<?php <?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed'); if (!defined('BASEPATH')) exit('No direct script access allowed');
class Data_komponen_m extends CI_Model { class Data_komponen_m extends CI_Model
{
protected $master = "payroll_komponen_m";
protected $pendapatan = "payroll_tunj_tdk_tetap_m"; protected $pendapatan = "payroll_tunj_tdk_tetap_m";
protected $potongan = "payroll_pot_tdk_tetap_m"; protected $potongan = "payroll_pot_tdk_tetap_m";
function get_datatables($id_karyawan, $id_cabang, $id_departemen){ function get_datatables($id_karyawan, $id_cabang, $id_departemen)
{
$this->_get_datatables_query($id_karyawan, $id_cabang, $id_departemen); $this->_get_datatables_query($id_karyawan, $id_cabang, $id_departemen);
if($_GET['length'] != -1){ if ($_GET['length'] != -1) {
$this->db->limit($_GET['length'], $_GET['start']); $this->db->limit($_GET['length'], $_GET['start']);
} }
$query = $this->db->get(); $query = $this->db->get();
return $query->result(); return $query->result();
} }
function count_filtered($id_karyawan, $id_cabang, $id_departemen){ function count_filtered($id_karyawan, $id_cabang, $id_departemen)
{
$this->_get_datatables_query($id_karyawan, $id_cabang, $id_departemen); $this->_get_datatables_query($id_karyawan, $id_cabang, $id_departemen);
$query = $this->db->get(); $query = $this->db->get();
return $query->num_rows(); return $query->num_rows();
} }
public function count_all($id_karyawan, $id_cabang, $id_departemen){ public function count_all($id_karyawan, $id_cabang, $id_departemen)
{
$this->_get_datatables_query($id_karyawan, $id_cabang, $id_departemen); $this->_get_datatables_query($id_karyawan, $id_cabang, $id_departemen);
return $this->db->count_all_results(); return $this->db->count_all_results();
} }
private function _get_datatables_query($id_karyawan, $id_cabang, $id_departemen){ private function _get_datatables_query($id_karyawan, $id_cabang, $id_departemen)
if($id_karyawan != 'all'){ {
if ($id_karyawan != 'all') {
$this->db->where('md5(dk.id_karyawan)', $id_karyawan); $this->db->where('md5(dk.id_karyawan)', $id_karyawan);
}else{ } else {
if($id_cabang != 'all'){ if ($id_cabang != 'all') {
$this->db->where('master_cabang.kode', $id_cabang); $this->db->where('master_cabang.kode', $id_cabang);
} }
if($id_departemen != 'all'){ if ($id_departemen != 'all') {
$this->db->where('master_departemen.kode', $id_departemen); $this->db->where('master_departemen.kode', $id_departemen);
} }
} }
...@@ -42,28 +48,28 @@ class Data_komponen_m extends CI_Model { ...@@ -42,28 +48,28 @@ class Data_komponen_m extends CI_Model {
dk.nama_lengkap, dk.nama_lengkap,
dk.nik, dk.nik,
') ')
->from('data_karyawan AS dk') ->from('data_karyawan AS dk')
->join('master_cabang','master_cabang.id_cabang = dk.id_cabang') ->join('master_cabang', 'master_cabang.id_cabang = dk.id_cabang')
->join('master_departemen','master_departemen.id_departemen = dk.id_departemen','LEFT') ->join('master_departemen', 'master_departemen.id_departemen = dk.id_departemen', 'LEFT')
->join('master_jabatan','master_jabatan.id_jabatan = dk.id_jabatan') ->join('master_jabatan', 'master_jabatan.id_jabatan = dk.id_jabatan')
->where('dk.id_company', $this->id_company) ->where('dk.id_company', $this->id_company)
->where_in('dk.status', ['1','2','3','4']) ->where_in('dk.status', ['1', '2', '3', '4'])
->where_not_in("master_jabatan.level_user",["1","6"]); ->where_not_in("master_jabatan.level_user", ["1", "6"]);
$column_search = array(''); $column_search = array('');
$i = 0; $i = 0;
foreach ($column_search as $item){ // looping awal foreach ($column_search as $item) { // looping awal
if($_GET['search']['value']){ // jika datatable mengirimkan pencarian dengan metode POST if ($_GET['search']['value']) { // jika datatable mengirimkan pencarian dengan metode POST
if($i===0){ // looping awal if ($i === 0) { // looping awal
$this->db->group_start(); $this->db->group_start();
$this->db->like($item, $_GET['search']['value']); $this->db->like($item, $_GET['search']['value']);
}else{ } else {
$this->db->or_like($item, $_GET['search']['value']); $this->db->or_like($item, $_GET['search']['value']);
} }
if(count($column_search) - 1 == $i){ if (count($column_search) - 1 == $i) {
$this->db->group_end(); $this->db->group_end();
} }
} }
...@@ -72,29 +78,30 @@ class Data_komponen_m extends CI_Model { ...@@ -72,29 +78,30 @@ class Data_komponen_m extends CI_Model {
$column_order = array(''); $column_order = array('');
if(isset($_GET['order'])){ if (isset($_GET['order'])) {
$this->db->order_by($column_order[$_GET['order']['0']['column']], $_GET['order']['0']['dir']); $this->db->order_by($column_order[$_GET['order']['0']['column']], $_GET['order']['0']['dir']);
} } else {
else{ $this->db->order_by("dk.nama_lengkap ASC, dk.nik ASC");
$this->db->order_by("dk.nama_lengkap ASC", "dk.nik ASC");
} }
} }
public function list_komponen_pendapatan($bulan) public function list_komponen_pendapatan($bulan)
{ {
$select = $this->db->select(' $select = $this->db->select('
id_item, p.id_item,
jenis_komponen, p.jenis_komponen,
jenis_master, p.jenis_master,
nm_tunjangan p.nm_tunjangan
') ')
->from($this->pendapatan) ->from($this->pendapatan . ' as p')
->where('jenis_komponen', 'tidak tetap') ->join($this->master . ' as master', 'master.id_item = p.id_item')
->where('periode', date('Y-m', strtotime('01-'.$bulan))) ->where('p.jenis_komponen', 'tidak tetap')
->where('id_company', $this->id_company) ->where('p.periode', date('Y-m', strtotime('01-' . $bulan)))
->group_by('id_item') ->where('p.id_company', $this->id_company)
->get() ->group_by('p.id_item')
->result(); ->order_by('master.no_urut ASC')
->get()
->result();
$data = []; $data = [];
foreach ($select as $key) { foreach ($select as $key) {
...@@ -110,18 +117,20 @@ class Data_komponen_m extends CI_Model { ...@@ -110,18 +117,20 @@ class Data_komponen_m extends CI_Model {
public function list_komponen_potongan($bulan) public function list_komponen_potongan($bulan)
{ {
$select = $this->db->select(' $select = $this->db->select('
id_item, p.id_item,
jenis_komponen, p.jenis_komponen,
jenis_master, p.jenis_master,
nm_potongan p.nm_potongan
') ')
->from($this->potongan) ->from($this->potongan . ' as p')
->where('jenis_komponen', 'tidak tetap') ->join($this->master . ' as master', 'master.id_item = p.id_item')
->where('periode', date('Y-m', strtotime('01-'.$bulan))) ->where('p.jenis_komponen', 'tidak tetap')
->where('id_company', $this->id_company) ->where('p.periode', date('Y-m', strtotime('01-' . $bulan)))
->group_by('id_item') ->where('p.id_company', $this->id_company)
->get() ->group_by('p.id_item')
->result(); ->order_by('master.no_urut ASC')
->get()
->result();
$data = []; $data = [];
foreach ($select as $key) { foreach ($select as $key) {
...@@ -136,34 +145,36 @@ class Data_komponen_m extends CI_Model { ...@@ -136,34 +145,36 @@ class Data_komponen_m extends CI_Model {
public function tambah_pendapatan($bulan, $id_karyawan, $id_cabang, $id_departemen) public function tambah_pendapatan($bulan, $id_karyawan, $id_cabang, $id_departemen)
{ {
if($id_karyawan != 'all'){ if ($id_karyawan != 'all') {
$this->db->where('md5(id_karyawan)', $id_karyawan); $this->db->where('md5(id_karyawan)', $id_karyawan);
}else{ } else {
if($id_cabang != 'all'){ if ($id_cabang != 'all') {
$this->db->like('cabang', $id_cabang, 'after'); $this->db->like('cabang', $id_cabang, 'after');
} }
if($id_departemen != 'all'){ if ($id_departemen != 'all') {
$this->db->like('departemen', $id_departemen, 'after'); $this->db->like('departemen', $id_departemen, 'after');
} }
} }
$select = $this->db->select(' $select = $this->db->select('
id_karyawan, p.id_karyawan,
periode, p.periode,
id_item, p.id_item,
nm_tunjangan, p.nm_tunjangan,
nominal_tunjangan, p.nominal_tunjangan,
cabang, p.cabang,
departemen, p.departemen,
jabatan p.jabatan
') ')
->from($this->pendapatan) ->from($this->pendapatan . ' as p')
->where('jenis_komponen', 'tidak tetap') ->join($this->master . ' as master', 'master.id_item = p.id_item')
->where('periode', date('Y-m', strtotime('01-'.$bulan))) ->where('p.id_company', $this->id_company)
->where('id_company', $this->id_company) ->where('p.jenis_komponen', 'tidak tetap')
->get() ->where('p.periode', date('Y-m', strtotime('01-' . $bulan)))
->result(); ->order_by('master.no_urut ASC')
->get()
->result();
$data = []; $data = [];
foreach ($select as $key) { foreach ($select as $key) {
...@@ -182,34 +193,36 @@ class Data_komponen_m extends CI_Model { ...@@ -182,34 +193,36 @@ class Data_komponen_m extends CI_Model {
public function tambah_potongan($bulan, $id_karyawan, $id_cabang, $id_departemen) public function tambah_potongan($bulan, $id_karyawan, $id_cabang, $id_departemen)
{ {
if($id_karyawan != 'all'){ if ($id_karyawan != 'all') {
$this->db->where('md5(id_karyawan)', $id_karyawan); $this->db->where('md5(id_karyawan)', $id_karyawan);
}else{ } else {
if($id_cabang != 'all'){ if ($id_cabang != 'all') {
$this->db->like('cabang', $id_cabang, 'after'); $this->db->like('cabang', $id_cabang, 'after');
} }
if($id_departemen != 'all'){ if ($id_departemen != 'all') {
$this->db->like('departemen', $id_departemen, 'after'); $this->db->like('departemen', $id_departemen, 'after');
} }
} }
$select = $this->db->select(' $select = $this->db->select('
id_karyawan, p.id_karyawan,
periode, p.periode,
id_item, p.id_item,
nm_potongan, p.nm_potongan,
nominal_potongan, p.nominal_potongan,
cabang, p.cabang,
departemen, p.departemen,
jabatan p.jabatan
') ')
->from($this->potongan) ->from($this->potongan . ' as p')
->where('jenis_komponen', 'tidak tetap') ->join($this->master . ' as master', 'master.id_item = p.id_item')
->where('periode', date('Y-m', strtotime('01-'.$bulan))) ->where('p.id_company', $this->id_company)
->where('id_company', $this->id_company) ->where('p.jenis_komponen', 'tidak tetap')
->get() ->where('p.periode', date('Y-m', strtotime('01-' . $bulan)))
->result(); ->order_by('master.no_urut ASC')
->get()
->result();
$data = []; $data = [];
foreach ($select as $key) { foreach ($select as $key) {
...@@ -226,27 +239,28 @@ class Data_komponen_m extends CI_Model { ...@@ -226,27 +239,28 @@ class Data_komponen_m extends CI_Model {
return json_encode($data); return json_encode($data);
} }
public function update($data, $master_komponen, $id_item){ public function update($data, $master_komponen, $id_item)
{
$this->db->trans_start(); $this->db->trans_start();
if ($master_komponen == 'pendapatan') { if ($master_komponen == 'pendapatan') {
$komponen = $this->pendapatan; $komponen = $this->pendapatan;
}else{ } else {
$komponen = $this->potongan; $komponen = $this->potongan;
} }
$this->db->where('md5(concat(id_karyawan,id_item,periode,id_company))', $id_item); $this->db->where('md5(concat(id_karyawan,id_item,periode,id_company))', $id_item);
$this->db->update($komponen, $data); $this->db->update($komponen, $data);
$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_update(false); return __response_update(false);
}else{ } else {
$this->db->trans_commit(); $this->db->trans_commit();
$message = ["message"=>'<font color="#009900"><i class="fa fa-check-square">&nbsp;</i>Data berhasil disimpan</font>']; $message = ["message" => '<font color="#009900"><i class="fa fa-check-square">&nbsp;</i>Data berhasil disimpan</font>'];
return __response_update(true, $message); return __response_update(true, $message);
} }
} }
} }
...@@ -2,7 +2,10 @@ ...@@ -2,7 +2,10 @@
$(function() { $(function() {
view_data($("#filter #bulan").val()); view_data($("#filter #bulan").val());
$("#filter #bulan").inputmask({'alias':'datetime','inputFormat': 'mm-yyyy'}); $("#filter #bulan").inputmask({
'alias': 'datetime',
'inputFormat': 'mm-yyyy'
});
$("#filter #bulan").datepicker({ $("#filter #bulan").datepicker({
format: "mm-yyyy", format: "mm-yyyy",
viewMode: "months", viewMode: "months",
...@@ -12,7 +15,7 @@ ...@@ -12,7 +15,7 @@
endDate: "today" endDate: "today"
}); });
$('#modal-nominal').on('show.bs.modal', function (event) { $('#modal-nominal').on('show.bs.modal', function(event) {
$('#message').hide(); $('#message').hide();
let button = $(event.relatedTarget); let button = $(event.relatedTarget);
...@@ -22,14 +25,14 @@ ...@@ -22,14 +25,14 @@
let nominal = button.data('nominal'); let nominal = button.data('nominal');
let modal = $(this); let modal = $(this);
modal.find(".modal-title").text('Ubah nominal '+komponen); modal.find(".modal-title").text('Ubah nominal ' + komponen);
modal.find('.card-body label').text(nm_komponen); modal.find('.card-body label').text(nm_komponen);
modal.find('#item').val(item); modal.find('#item').val(item);
modal.find('#komponen').val(komponen); modal.find('#komponen').val(komponen);
modal.find('#nominal_pendapatan').val(nominal); modal.find('#nominal_pendapatan').val(nominal);
modal.find('#nominal_pendapatan').focus(); modal.find('#nominal_pendapatan').focus();
$("#nominal_pendapatan").keydown(function (event) { $("#nominal_pendapatan").keydown(function(event) {
if (event.which == 13) { if (event.which == 13) {
event.preventDefault(); event.preventDefault();
$('.btn_save').click(); $('.btn_save').click();
...@@ -37,28 +40,28 @@ ...@@ -37,28 +40,28 @@
}); });
}) })
$(document).on('click', '.btn_save', function (e) { $(document).on('click', '.btn_save', function(e) {
e.preventDefault(); e.preventDefault();
var loading = Ladda.create(this); var loading = Ladda.create(this);
loading.start(); loading.start();
var param = {}; var param = {};
param.item = $("#item").val(); param.item = $("#item").val();
param.komponen = $("#komponen").val(); param.komponen = $("#komponen").val();
param.nominal = ($("#nominal_pendapatan").val()!="")?$("#nominal_pendapatan").val():0; param.nominal = ($("#nominal_pendapatan").val() != "") ? $("#nominal_pendapatan").val() : 0;
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
url: "<?= route('payroll.data.komponen.tdk.tetap.update') ?>", url: "<?= route('payroll.data.komponen.tdk.tetap.update') ?>",
data: param, data: param,
dataType:'JSON', dataType: 'JSON',
success: function(result){ success: function(result) {
loading.stop(); loading.stop();
$('#message').show(); $('#message').show();
$('#message').html(result.message); $('#message').html(result.message);
}, },
error:function(){ error: function() {
loading.stop(); loading.stop();
$('#message').show(); $('#message').show();
$('#message').html('<font color="#eb3a28"><i class="fa fa-close(alias)">&nbsp;</i><strong>Gagal : Terjadi Kesalahan</strong></font>'); $('#message').html('<font color="#eb3a28"><i class="fa fa-close(alias)">&nbsp;</i><strong>Gagal : Terjadi Kesalahan</strong></font>');
...@@ -69,22 +72,22 @@ ...@@ -69,22 +72,22 @@
function formatangka(objek) { function formatangka(objek) {
a = objek.value; a = objek.value;
b = a.replace(/[^\d]/g,""); b = a.replace(/[^\d]/g, "");
c = ""; c = "";
panjang = b.length; panjang = b.length;
j = 0; j = 0;
for (i = panjang; i > 0; i--) { for (i = panjang; i > 0; i--) {
j = j + 1; j = j + 1;
if (((j % 3) == 1) && (j != 1)) { if (((j % 3) == 1) && (j != 1)) {
c = b.substr(i-1,1) + "." + c; c = b.substr(i - 1, 1) + "." + c;
} else { } else {
c = b.substr(i-1,1) + c; c = b.substr(i - 1, 1) + c;
} }
} }
objek.value = c; objek.value = c;
} }
function view_data(bulan){ function view_data(bulan) {
$("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => 'all', 'id_cabang' => 'all', 'id_departemen' => 'all']) ?>"); $("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => 'all', 'id_cabang' => 'all', 'id_departemen' => 'all']) ?>");
} }
</script> </script>
...@@ -101,8 +104,8 @@ ...@@ -101,8 +104,8 @@
url: '<?= route("dropdown.karyawan.encrypt") ?>', url: '<?= route("dropdown.karyawan.encrypt") ?>',
dataType: 'json', dataType: 'json',
delay: 250, delay: 250,
processResults: function (data) { processResults: function(data) {
return { return {
results: data results: data
}; };
}, },
...@@ -111,31 +114,31 @@ ...@@ -111,31 +114,31 @@
minLength: 3 minLength: 3
}); });
$('#filter #btn_cari').click(function(){ $('#filter #btn_cari').click(function() {
let loading = Ladda.create(this); let loading = Ladda.create(this);
loading.start(); loading.start();
let bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : "<?= date('m-Y') ?>"; let bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : "<?= date('m-Y') ?>";
let id_cabang = "all"; let id_cabang = "all";
let id_departemen = "all"; let id_departemen = "all";
let id_karyawan = ($("#filter #id_karyawan").val()) ? $("#filter #id_karyawan").val() : "all"; let id_karyawan = ($("#filter #id_karyawan").val()) ? $("#filter #id_karyawan").val() : "all";
$("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => '"+id_karyawan+"', 'id_cabang' => '"+id_cabang+"', 'id_departemen' => '"+id_departemen+"']) ?>"); $("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => '"+id_karyawan+"', 'id_cabang' => '"+id_cabang+"', 'id_departemen' => '"+id_departemen+"']) ?>");
loading.stop(); loading.stop();
}); });
$('#filter #btn_filter').click(function(){ $('#filter #btn_filter').click(function() {
let loading = Ladda.create(this); let loading = Ladda.create(this);
loading.start(); loading.start();
let bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : "<?= date('m-Y') ?>"; let bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : "<?= date('m-Y') ?>";
let id_cabang = (!$("#filter #cabang").val()) ? "all" : $("#filter #cabang").val(); let id_cabang = (!$("#filter #cabang").val()) ? "all" : $("#filter #cabang").val();
let id_departemen = (!$("#filter #departemen").val()) ? "all" : $("#filter #departemen").val(); let id_departemen = (!$("#filter #departemen").val()) ? "all" : $("#filter #departemen").val();
let id_karyawan = "all"; let id_karyawan = "all";
$("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => '"+id_karyawan+"', 'id_cabang' => '"+id_cabang+"', 'id_departemen' => '"+id_departemen+"']) ?>"); $("#listdata").load("<?= route('payroll.data.komponen.tdk.tetap.viewdata', ['bulan' => '"+bulan+"', 'id_karyawan' => '"+id_karyawan+"', 'id_cabang' => '"+encodeURIComponent(id_cabang)+"', 'id_departemen' => '"+encodeURIComponent(id_departemen)+"']) ?>");
loading.stop(); loading.stop();
}); });
}); });
function dropdown_cabang(){ function dropdown_cabang() {
$('#filter #cabang').select2({ $('#filter #cabang').select2({
placeholder: 'Semua Cabang', placeholder: 'Semua Cabang',
allowClear: true, allowClear: true,
...@@ -143,37 +146,35 @@ ...@@ -143,37 +146,35 @@
url: '<?= route("payroll.data.komponen.tdk.tetap.dropdown.cabang") ?>', url: '<?= route("payroll.data.komponen.tdk.tetap.dropdown.cabang") ?>',
dataType: 'json', dataType: 'json',
delay: 250, delay: 250,
processResults: function (data) { processResults: function(data) {
return { return {
results: data results: data
}; };
}, },
cache: false cache: false
}, },
minLength: 3 minLength: 3
}).change(function() {
$("#filter #departemen").val('').trigger('change');
dropdown_departemen();
}); });
} }
function onchange_dropdown_cabang(){ function dropdown_departemen() {
$("#filter #departemen").val('').trigger('change');
dropdown_departemen();
}
function dropdown_departemen(){
var id_cabang = ($("#filter #cabang").val() == null)?"all":$("#filter #cabang").val(); var id_cabang = ($("#filter #cabang").val() == null) ? "all" : $("#filter #cabang").val();
$("#filter #departemen").select2({ $("#filter #departemen").select2({
placeholder: "Semua Departemen", placeholder: "Semua Departemen",
allowClear: true, allowClear: true,
ajax: { ajax: {
url: '<?= route("payroll.data.komponen.tdk.tetap.dropdown.departemen") ?>/'+id_cabang, url: '<?= route("payroll.data.komponen.tdk.tetap.dropdown.departemen") ?>/' + encodeURIComponent(id_cabang),
dataType: 'json', dataType: 'json',
delay: 250, delay: 250,
processResults:function(data) { processResults: function(data) {
return { return {
results: data results: data
}; };
}, },
cache: false cache: false
} }
...@@ -238,7 +239,7 @@ ...@@ -238,7 +239,7 @@
</div> </div>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
<select id="cabang" class="form-control" onchange="onchange_dropdown_cabang()"> <select id="cabang" class="form-control">
<option></option> <option></option>
</select> </select>
</div> </div>
......
<style> <style>
th, td { th,
td {
white-space: nowrap; white-space: nowrap;
} }
div.dataTables_wrapper { div.dataTables_wrapper {
margin: 0 auto; margin: 0 auto;
} }
...@@ -10,10 +12,10 @@ ...@@ -10,10 +12,10 @@
<thead> <thead>
<tr class="bg-tr"> <tr class="bg-tr">
<?php <?php
$numrow = 1; $numrow = 1;
if (count($master['pendapatan']) > 0 || count($master['potongan']) > 0) { if (count($master['pendapatan']) > 0 || count($master['potongan']) > 0) {
$numrow = 2; $numrow = 2;
} }
?> ?>
<th rowspan="<?= $numrow ?>" class="align-middle text-center" width="30">NO</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center" width="30">NO</th>
<th rowspan="<?= $numrow ?>" class="align-middle text-center">NIK</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">NIK</th>
...@@ -23,28 +25,28 @@ ...@@ -23,28 +25,28 @@
<th rowspan="<?= $numrow ?>" class="align-middle text-center">DEPARTEMEN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">DEPARTEMEN</th>
<th rowspan="<?= $numrow ?>" class="align-middle text-center">JABATAN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">JABATAN</th>
<?php <?php
if (count($master['pendapatan']) > 0) { if (count($master['pendapatan']) > 0) {
echo '<th colspan="'.count($master['pendapatan']).'" class="align-middle text-center">PENDAPATAN</th>'; echo '<th colspan="' . count($master['pendapatan']) . '" class="align-middle text-center">PENDAPATAN</th>';
} }
if (count($master['potongan']) > 0) { if (count($master['potongan']) > 0) {
echo '<th colspan="'.count($master['potongan']).'" class="align-middle text-center">POTONGAN</th>'; echo '<th colspan="' . count($master['potongan']) . '" class="align-middle text-center">POTONGAN</th>';
} }
?> ?>
</tr> </tr>
<?php <?php
if (count($master['pendapatan']) > 0 || count($master['potongan']) > 0) { if (count($master['pendapatan']) > 0 || count($master['potongan']) > 0) {
echo '<tr class="bg-tr">'; echo '<tr class="bg-tr">';
if (count($master['pendapatan']) > 0) { if (count($master['pendapatan']) > 0) {
foreach ($master['pendapatan'] as $komponen) { foreach ($master['pendapatan'] as $komponen) {
echo '<th class="align-middle text-center">'.strtoupper($komponen['nm_komponen']).'</th>'; echo '<th class="align-middle text-center">' . strtoupper($komponen['nm_komponen']) . '</th>';
}
} }
if (count($master['potongan']) > 0) { }
foreach ($master['potongan'] as $komponen) { if (count($master['potongan']) > 0) {
echo '<th class="align-middle text-center">'.strtoupper($komponen['nm_komponen']).'</th>'; foreach ($master['potongan'] as $komponen) {
} echo '<th class="align-middle text-center">' . strtoupper($komponen['nm_komponen']) . '</th>';
} }
} }
}
?> ?>
</thead> </thead>
<tbody> <tbody>
...@@ -55,59 +57,78 @@ ...@@ -55,59 +57,78 @@
$(function() { $(function() {
var paramBulan = "<?= $bulan ?>"; var paramBulan = "<?= $bulan ?>";
$.fn.dataTableExt.sErrMode = 'none'; $.fn.dataTableExt.sErrMode = 'none';
list_data = $('#list_data').on('error.dt', function ( e, settings, techNote, message ) { list_data = $('#list_data').DataTable({
if(confirm('Terjadi kesalahan saat memproses data, muat ulang halaman ?')){ 'searching': true,
window.location.reload(); 'paging': true,
} 'lengthChange': true,
}).DataTable({ 'ordering': true,
'searching' : true, 'info': true,
'paging' : true, 'scrollX': true,
'lengthChange' : true,
'ordering' : true,
'info' : true,
'scrollX' : true,
'scrollCollapse': true, 'scrollCollapse': true,
'fixedColumns' : { 'fixedColumns': {
'leftColumns': 3, 'leftColumns': 3,
}, },
'language' : { 'language': {
'url' : '<?=base_url("assets/plugins/datatables/dataTables-language-id.json")?>', 'url': '<?= base_url("assets/plugins/datatables/dataTables-language-id.json") ?>',
'sEmptyTable' : 'Tidak ada data untuk ditampilkan', 'sEmptyTable': 'Tidak ada data untuk ditampilkan',
'searchPlaceholder': 'NIK/Karyawan' 'searchPlaceholder': 'NIK/Karyawan'
}, },
"processing" : true, "processing": true,
"serverSide" : true, "serverSide": true,
"order" : [], "order": [],
"ajax" : { "ajax": {
"url": "<?= route('payroll.data.komponen.tdk.tetap.import.listdata', ['bulan' => '"+paramBulan+"']) ?>", "url": "<?= route('payroll.data.komponen.tdk.tetap.import.listdata', ['bulan' => '"+paramBulan+"']) ?>",
"type": "GET", "type": "GET",
"data" : function (d) { "data": function(d) {
delete d.columns; delete d.columns;
}, },
"complete" : function(data){ "complete": function(data) {
reconfigure(data); reconfigure(data);
} }
}, },
"aoColumnDefs": [ "aoColumnDefs": [{
{ "aTargets": [1], "bSortable": true}, "aTargets": [1],
{ "aTargets": "_all", "bSortable": false}, "bSortable": true
{ "visible": false, "targets": [1]}, },
{ "className": "text-center", "targets": [0]}, {
{ "className": "text-left", "targets": [1,2,3,4,5,6]}, "aTargets": "_all",
{ "className": "text-right", "targets": "_all"}, "bSortable": false
},
{
"visible": false,
"targets": [1]
},
{
"className": "text-center",
"targets": [0]
},
{
"className": "text-left",
"targets": [1, 2, 3, 4, 5, 6]
},
{
"className": "text-right",
"targets": "_all"
},
], ],
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull) { "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
for (let index = 1; index < aData.length; index++) { for (let index = 1; index < aData.length; index++) {
const col = aData[index]; const col = aData[index];
if(col == ""){ if (col == "") {
$('td:eq('+index+')', nRow).css({'background-color':'#FF7588','color':'White'}); $('td:eq(' + index + ')', nRow).css({
'background-color': '#FF7588',
'color': 'White'
});
} }
} }
if(aData[1] == "-"){ if (aData[1] == "-") {
$('td:eq(1)', nRow).css({'background-color':'#ffbc34','color':'White'}); $('td:eq(1)', nRow).css({
'background-color': '#ffbc34',
'color': 'White'
});
} }
}, },
}); });
......
...@@ -3,48 +3,55 @@ ...@@ -3,48 +3,55 @@
$(document).ready(function() { $(document).ready(function() {
var bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : ''; var bulan = ($("#filter #bulan").val()) ? $("#filter #bulan").val() : '';
$.fn.dataTableExt.sErrMode = 'none'; $.fn.dataTableExt.sErrMode = 'none';
list_data = $('#list_data').on('error.dt', function ( e, settings, techNote, message ) { list_data = $('#list_data').DataTable({
if(confirm('Terjadi kesalahan saat memproses data, muat ulang halaman ?')){ 'searching': false,
window.location.reload(); 'searchDelay': 1000,
} 'paging': true,
}).DataTable({
'searching' : false,
'searchDelay' : 1000,
'paging' : true,
'lengthChange': true, 'lengthChange': true,
'ordering' : true, 'ordering': true,
'info' : true, 'info': true,
'scrollX' : true, 'scrollX': true,
'fixedColumns': { 'fixedColumns': {
leftColumns: 2 leftColumns: 2
}, },
// 'scrollCollapse': true, // 'scrollCollapse': true,
// 'fixedColumns': true, // 'fixedColumns': true,
'language' :{ 'language': {
'url' : '<?=base_url("assets/plugins/datatables/dataTables-language-id.json")?>', 'url': '<?= base_url("assets/plugins/datatables/dataTables-language-id.json") ?>',
'sEmptyTable' : 'Tidak ada data untuk ditampilkan', 'sEmptyTable': 'Tidak ada data untuk ditampilkan',
'searchPlaceholder': '' 'searchPlaceholder': ''
}, },
"processing" : true, "processing": true,
"serverSide" : true, "serverSide": true,
"order" : [], "order": [],
"ajax" : { "ajax": {
"url" : "<?= route('payroll.data.komponen.tdk.tetap.datatable', ['bulan' => '"+bulan+"', 'id_karyawan' => $id_karyawan, 'id_cabang' => $id_cabang, 'id_departemen' => $id_departemen]) ?>", "url": "<?= route('payroll.data.komponen.tdk.tetap.datatable', ['bulan' => '"+bulan+"', 'id_karyawan' => $id_karyawan, 'id_cabang' => $id_cabang, 'id_departemen' => $id_departemen]) ?>",
"type": "GET", "type": "GET",
"data": function (d) { "data": function(d) {
delete d.columns; delete d.columns;
}, },
"complete" : function(data){ "complete": function(data) {
reconfigure(data); reconfigure(data);
} }
}, },
"aoColumnDefs": [ "aoColumnDefs": [{
{ "aTargets": "_all", "bSortable": false }, "aTargets": "_all",
{ "className": "text-center", "targets": [0] }, "bSortable": false
{ "className": "text-left", "targets": [1,2,3,4] }, },
{ "className": "text-right", "targets": "_all" }, {
"className": "text-center",
"targets": [0]
},
{
"className": "text-left",
"targets": [1, 2, 3, 4]
},
{
"className": "text-right",
"targets": "_all"
},
] ]
}); });
}); });
...@@ -55,10 +62,10 @@ ...@@ -55,10 +62,10 @@
<thead> <thead>
<tr class="bg-tr"> <tr class="bg-tr">
<?php <?php
$numrow = 1; $numrow = 1;
if (count($list_pendapatan) > 0 || count($list_potongan) > 0) { if (count($list_pendapatan) > 0 || count($list_potongan) > 0) {
$numrow = 2; $numrow = 2;
} }
?> ?>
<th rowspan="<?= $numrow ?>" class="align-middle text-center" width="30">NO</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center" width="30">NO</th>
<th rowspan="<?= $numrow ?>" class="align-middle text-center">NAMA KARYAWAN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">NAMA KARYAWAN</th>
...@@ -66,31 +73,31 @@ ...@@ -66,31 +73,31 @@
<th rowspan="<?= $numrow ?>" class="align-middle text-center">DEPARTEMEN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">DEPARTEMEN</th>
<th rowspan="<?= $numrow ?>" class="align-middle text-center">JABATAN</th> <th rowspan="<?= $numrow ?>" class="align-middle text-center">JABATAN</th>
<?php <?php
if (count($list_pendapatan) > 0) { if (count($list_pendapatan) > 0) {
echo '<th colspan="'.(count($list_pendapatan)+1).'" class="align-middle text-center">PENDAPATAN</th>'; echo '<th colspan="' . (count($list_pendapatan) + 1) . '" class="align-middle text-center">PENDAPATAN</th>';
} }
if (count($list_potongan) > 0) { if (count($list_potongan) > 0) {
echo '<th colspan="'.(count($list_potongan)+1).'" class="align-middle text-center">POTONGAN</th>'; echo '<th colspan="' . (count($list_potongan) + 1) . '" class="align-middle text-center">POTONGAN</th>';
} }
?> ?>
</tr> </tr>
<?php <?php
if (count($list_pendapatan) > 0 || count($list_potongan) > 0) { if (count($list_pendapatan) > 0 || count($list_potongan) > 0) {
echo '<tr>'; echo '<tr>';
if (count($list_pendapatan) > 0) { if (count($list_pendapatan) > 0) {
foreach ($list_pendapatan as $komponen) { foreach ($list_pendapatan as $komponen) {
echo '<th class="align-middle text-center">'.strtoupper($komponen['nm_tunjangan']).'</th>'; echo '<th class="align-middle text-center">' . strtoupper($komponen['nm_tunjangan']) . '</th>';
}
echo '<th class="align-middle text-center">TOTAL PENDAPATAN</th>';
} }
if (count($list_potongan) > 0) { echo '<th class="align-middle text-center">TOTAL PENDAPATAN</th>';
foreach ($list_potongan as $komponen) { }
echo '<th class="align-middle text-center">'.strtoupper($komponen['nm_potongan']).'</th>'; if (count($list_potongan) > 0) {
} foreach ($list_potongan as $komponen) {
echo '<th class="align-middle text-center">TOTAL POTONGAN</th>'; echo '<th class="align-middle text-center">' . strtoupper($komponen['nm_potongan']) . '</th>';
} }
echo '</tr>'; echo '<th class="align-middle text-center">TOTAL POTONGAN</th>';
} }
echo '</tr>';
}
?> ?>
</thead> </thead>
<tbody> <tbody>
......
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