function list_data($id_emp = NULL, $period = NULL) { $period = "2015-11-16~2015-12-15"; permission(); $data['emp'] = GetAll("kg_view_employee", array("person_id" => "where/" . $id_emp)); $data['id_emp'] = $id_emp; $data['period'] = $period; $data['date'] = substr($period, 11, 10); $exp = explode("-", $data['date']); $data['last_date'] = date("Y-m-d", mktime(0, 0, 0, $exp[1], $exp[0], $exp[2])); $data['ot_rasio'] = GetOTRasio($id_emp, $data['date']); $data['ot_rasio_last'] = GetOTRasio($id_emp, $data['last_date']); $data['ot_rasio_selisih'] = str_replace("%", "", $data['ot_rasio']) - str_replace("%", "", $data['ot_rasio_last']); if (str_replace("%", "", $data['ot_rasio']) > str_replace("%", "", $data['ot_rasio_last'])) { $data['high_low'] = "higher"; } else { $data['high_low'] = "lower"; } //$data['detail'] = $this->att->get_by_id($id_emp, $param)->result_array(); $this->load->view('list_data', $data); }
function form_overtime($flag = NULL) { $webmaster_id = permission(); $data['path_file'] = $this->filename; $data['flag'] = $data['id'] = $flag; $data['tgl'] = ""; $data['time_in'] = $data['time_out'] = $data['scan_in'] = $data['scan_out'] = $data['start_ovt'] = $data['end_ovt'] = ""; $data['ovt_flag'] = $data['ovt_reason'] = $data['ovt_detail_reason'] = $data['ovt_feedback'] = $data['ovt_status'] = ""; $data['id_emp'] = $data['ot_rasio'] = $data['actual_hours'] = $data['cal_hours'] = $data['revisi'] = ""; $data['opt_reason'] = GetOptReason(); $data['opt_ovt_flag'] = array(array("J", "J"), array("O", "O"), array("T", "T"), array("N.A.", "N.A.")); $data['opt_status'] = GetOptStatusForm(); if ($flag) { $q = GetAll("kg_view_overtime", array("id" => "where/" . $flag)); foreach ($q->result_array() as $r) { if (in_array($r['create_user_id'], CekBawahan($webmaster_id)) || $r['create_user_id'] == $webmaster_id) { $data['employee_nm'] = $r['ext_id'] . " - " . $r['person_nm']; $data['id_emp'] = $r['id_employee']; $data['tgl'] = $r['date_full']; $data['time_in'] = $r['time_in']; $data['time_out'] = $r['time_out']; $data['scan_in'] = $r['scan_masuk']; $data['scan_out'] = $r['scan_pulang']; $data['start_ovt'] = $r['start_ovt_ref'] ? $r['start_ovt_ref'] : $r['start_ovt']; $data['end_ovt'] = $r['end_ovt_ref'] ? $r['end_ovt_ref'] : $r['end_ovt']; $data['ovt_flag'] = $r['ovt_flag']; $data['ovt_reason'] = $r['id_reason']; $data['ovt_detail_reason'] = $r['ovt_detail_reason']; $data['ovt_feedback'] = $r['ovt_feedback'] == 0 ? "" : $r['ovt_feedback']; $data['ovt_status'] = $r['ovt_status']; if ($r['create_user_id'] == $webmaster_id) { $data['flag'] = ""; $this->db->where("id", $flag); $this->db->update("kg_overtime", array("is_read" => 1)); } //Cek Revisi if (($r['start_ovt'] != $r['start_ovt_ref'] || $r['end_ovt'] != $r['end_ovt_ref']) && $r['ovt_status'] == "Approve") { $revisi = 1; } else { $revisi = 0; } $data['revisi'] = $revisi; //Detail OT $data['ot_rasio'] = GetOTRasio($r['id_employee'], $r['date_full']); $sum_cal = GetOTCal($r['id_employee'], $r['date_full']); $exp = explode("~", $sum_cal); $data['actual_hours'] = $exp[0]; $data['cal_hours'] = $exp[1]; } else { $data['flag'] = ""; } } } $this->load->view('form_overtime', $data); }
function get_ot_value($emp_id, $period_id, $monthly_income_id) { $is_management = getValue('job_level', 'kg_view_overtime', array('id_employee' => 'where/' . $emp_id)); $filter_period = array('id' => 'where/' . $period_id); $month = getValue('month', 'payroll_period', $filter_period); $year = getValue('year', 'payroll_period', $filter_period); $date_end = $year . '-' . $month . '-' . '15'; $date_start = date("Y-m-d", strtotime(date($date_end, strtotime(date("Y-m-d"))) . "-1 month")); $date_start = date("Y-m-d", strtotime(date($date_start, strtotime(date("Y-m-d"))) . "+1 day")); //Acc Ovt $acc = 0; $q = GetAll("kg_view_overtime", array("id_employee" => "where/" . $emp_id, "date_full >=" => "where/" . $date_start, "date_full <=" => "where/" . $date_end, "date_temp" => "where/0000-00-00")); foreach ($q->result_array() as $s) { if ($s['job_level'] != "nonmanagement") { if ($s['ovt_hour_sum'] >= 2) { $acc += $s['ovt_hour_sum']; } } else { $acc += $s['ovt_hour_cal']; } } //print_mz($acc); $q = GetAll("kg_view_overtime", array("id_employee" => "where/" . $emp_id, "date_temp >=" => "where/" . $date_start, "date_temp <=" => "where/" . $date_end)); foreach ($q->result_array() as $s) { if ($s['job_level'] != "nonmanagement") { if ($s['ovt_hour_sum'] >= 2) { $acc += $s['ovt_hour_sum']; } } else { $acc += $s['ovt_hour_cal']; } } if ($is_management != "nonmanagement") { $upah = $acc * GetConfigDirect('rest_time'); $component_id = 82; $num_rows = GetAllSelect('payroll_monthly_income_component', 'payroll_component_id', array('payroll_monthly_income_id' => 'where/' . $monthly_income_id, 'payroll_component_id' => 'where/' . $component_id))->num_rows(); $data = array('payroll_monthly_income_id' => $monthly_income_id, 'payroll_component_id' => $component_id, 'value' => $upah); if ($num_rows > 0) { $this->db->where('payroll_monthly_income_id', $monthly_income_id)->where('payroll_component_id', $component_id)->update('payroll_monthly_income_component', $data); } else { $this->db->insert('payroll_monthly_income_component', $data); } } else { $upah = $acc * (GetGapok($emp_id, $date_start) + GetHA($emp_id, $date_start)) / GetConfigDirect('total_hour_ovt'); $component_id = 82; $num_rows = GetAllSelect('payroll_monthly_income_component', 'payroll_component_id', array('payroll_monthly_income_id' => 'where/' . $monthly_income_id, 'payroll_component_id' => 'where/' . $component_id))->num_rows(); $data = array('payroll_monthly_income_id' => $monthly_income_id, 'payroll_component_id' => $component_id, 'value' => $upah); if ($num_rows > 0) { $this->db->where('payroll_monthly_income_id', $monthly_income_id)->where('payroll_component_id', $component_id)->update('payroll_monthly_income_component', $data); } else { $this->db->insert('payroll_monthly_income_component', $data); } } $ot_rasio = GetOTRasio($emp_id, $date_end); //$upah / (GetGapok($emp_id, $exp[0]) + GetHA($emp_id, $exp[0]) + $upah) * 100; return $upah; //$data[] = array($no, $r->ext_id, $r->person_nm, GetMonth(intval(substr($tgl,16,2))).' '.substr($tgl,11,4), $r->ovt_hour_sum, $acc, Decimal($ot_rasio)."%", Rupiah($upah), $edit); }
function export_ovt_rekap($tgl = NULL, $regs = NULL, $div = NULL, $sec = NULL, $pos = NULL, $grade = NULL) { $this->load->model('overtime_model', 'ovt'); $param = array("tgl" => $tgl, "rekap" => "rekap", "regs" => $regs, "divisi" => $div, "section" => $sec, "position" => $pos, "grade" => $grade); $exp = explode("~", $tgl); $list = $this->ovt->get_datatables($param); $dataz = array(); $no = 0; //$_POST['start']; foreach ($list->result() as $r) { $no++; //Acc Ovt $acc = 0; $q = GetAll("kg_view_overtime", array("id_employee" => "where/" . $r->id_employee, "date_full >=" => "where/" . $exp[0], "date_full <=" => "where/" . $exp[1], "date_temp" => "where/0000-00-00")); foreach ($q->result_array() as $s) { if ($s['job_level'] != "nonmanagement") { if ($s['ovt_hour_sum'] >= 2) { $acc += $s['ovt_hour_sum']; } } else { $acc += $s['ovt_hour_cal']; } } $q = GetAll("kg_view_overtime", array("id_employee" => "where/" . $r->id_employee, "date_temp >=" => "where/" . $exp[0], "date_temp <=" => "where/" . $exp[1])); foreach ($q->result_array() as $s) { if ($s['job_level'] != "nonmanagement") { if ($s['ovt_hour_sum'] >= 2) { $acc += $s['ovt_hour_sum']; } } else { $acc += $s['ovt_hour_cal']; } } if ($r->job_level != "nonmanagement") { $upah = $acc * GetConfigDirect('rest_time'); } else { $upah = $acc * (GetGapok($r->id_employee, $exp[0]) + GetHA($r->id_employee, $exp[0])) / GetConfigDirect('total_hour_ovt'); } $ot_rasio = GetOTRasio($r->id_employee, $exp[1]); //$upah / (GetGapok($r->id_employee, $exp[0]) + GetHA($r->id_employee, $exp[0]) + $upah) * 100; //$edit = '<a class="btn btn-sm btn-primary" href="javascript:void(0);" onclick="detailOvertime('."'".$r->id_employee."'".')"><i class="glyphicon glyphicon-info-sign"></i> Detail</a>'; $dataz[] = array($no, $r->ext_id, $r->person_nm, GetMonth(intval(substr($tgl, 16, 2))) . ' ' . substr($tgl, 11, 4), Decimal($r->ovt_hour_sum, 1), Decimal($acc), $ot_rasio, Number($upah)); } $data['list'] = $dataz; //print_mz($data['list']); $html = $this->load->view('export_overtime_rekap', $data); to_excel($html, 'ReportOvertimeRekap'); }