function GetOTRasio($id_emp, $date, $flag_reason = NULL) { $exp = explode("-", $date); $att_start_period = GetConfigDirect('att_start_period'); if ($exp[2] < $att_start_period) { $awal = date("Y-m", mktime(0, 0, 0, $exp[1] - 1, $exp[2], $exp[0])) . "-" . $att_start_period; } else { $awal = $exp[0] . "-" . $exp[1] . "-" . $att_start_period; } $acc = 0; $upah = 0; $reason = array(); $qq = GetAll("kg_view_overtime", array("id_employee" => "where/" . $id_emp, "ovt_status" => "where/Approve", "date_full >=" => "where/" . $awal, "date_full <=" => "where/" . $date, "date_temp" => "where/0000-00-00")); if ($qq->num_rows() > 0) { foreach ($qq->result_array() as $ss) { if ($ss['job_level'] != "nonmanagement") { if ($ss['ovt_hour_sum'] >= 2) { $acc += $ss['ovt_hour_sum']; } } else { $acc += $ss['ovt_hour_cal']; } //Hitung Jumlah Alasan if (!isset($reason[$ss['id_reason']])) { $reason[$ss['id_reason']] = 0; } $reason[$ss['id_reason']]++; } } if (!isset($ss['job_level'])) { $ss['job_level'] = ""; } $qq = GetAll("kg_view_overtime", array("id_employee" => "where/" . $id_emp, "ovt_status" => "where/Approve", "date_temp >=" => "where/" . $awal, "date_temp <=" => "where/" . $date)); if ($qq->num_rows() > 0) { foreach ($qq->result_array() as $ss) { if ($ss['job_level'] != "nonmanagement") { if ($ss['ovt_hour_sum'] >= 2) { $acc += $ss['ovt_hour_sum']; } } else { $acc += $ss['ovt_hour_cal']; } //Hitung Jumlah Alasan if (!isset($reason[$ss['id_reason']])) { $reason[$ss['id_reason']] = 0; } $reason[$ss['id_reason']]++; } } if (!isset($ss['job_level'])) { $ss['job_level'] = ""; } if ($ss['job_level'] != "nonmanagement") { $upah = $acc * GetConfigDirect('rest_time'); } else { $upah = $acc * (GetGapok($id_emp, $exp[0]) + GetHA($id_emp, $exp[0])) / GetConfigDirect('total_hour_ovt'); } //Var Reason $alasan = ""; arsort($reason); foreach ($reason as $key => $val) { $alasan .= $key . "~" . $val . "-"; } $alasan = substr($alasan, 0, -1); $ot_rasio = $upah / (GetGapok($id_emp, $exp[0]) + GetHA($id_emp, $exp[0]) + $upah) * 100; if ($flag_reason) { return Decimal($ot_rasio) . "%" . $alasan; } else { return Decimal($ot_rasio) . "%"; } }
echo "<td style='vertical-align:top;'>" . $val[$i] . "</td>"; } else { if ($i == 3) { echo "<td style='vertical-align:top;white-space:nowrap;'>" . $val[$i] . "</td>"; } else { echo "<td style='vertical-align:top;text-align:center;'>" . $val[$i] . "</td>"; } } } } echo "</tr>"; } echo "<tr>"; echo "<td colspan='4' style='text-align:center;'>TOTAL</td>"; echo "<td style='text-align:center;'>" . Decimal($tot_act, 1) . "</td>"; echo "<td style='text-align:center;'>" . Decimal($tot_cal) . "</td>"; echo "<td> </td>"; echo "<td style='text-align:right;'> </td>"; echo "</tr>"; ?> </tbody> </table> <br> <table width="100%"> <tr> <td colspan="3"> Jakarta, <?php echo date('M d, Y'); ?> <br/>Prepared By,<br /><br /><br /><br /><br /> <span style="text-decoration:underline;"><?php
function overtime() { $this->data['title'] = $this->title; $webmaster_id = permission(); $nik = $hadir = $off = $alpa = $where = $rasio = array(); $bawahan = CekBawahanByGrade($webmaster_id); //supaya User Login di Bar pertama $bawahan[] = array("grade" => 100, "id_emp" => "-1", "color" => "000000"); if (count($bawahan) == 1 && $webmaster_id != 1) { $this->data['flagz'] = 1; } else { $this->data['flagz'] = 0; } //die($data['flagz']."D"); rsort($bawahan); $q = GetAll("kg_ref_reason"); $title_reason = array(); foreach ($q->result_array() as $r) { $title_reason[$r['id_reason']] = $r['title']; } $avg_rasio = 0; $legend = array(); foreach ($bawahan as $val) { $b = $val['id_emp']; if ($b == "-1") { $b = $webmaster_id; } $ext_id = GetValue("ext_id", "hris_persons", array("person_id" => "where/" . $b)); $person_nm = GetValue("person_nm", "hris_persons", array("person_id" => "where/" . $b)); //$nik[] = "'".$ext_id."-".$person_nm."'"; //$nik[] = "'".$ext_id."'"; $new_nm = ""; $exp = explode(" ", $person_nm); foreach ($exp as $e) { if (strlen($new_nm . " " . $e) > 12) { break; } else { $new_nm .= $e . " "; } } $nik[] = "'" . $new_nm . "'"; $where[] = "'" . $b . "'"; $get_rasio = explode("%", GetOTRasio($b, "2015-12-15", 1)); $val_rasio = $get_rasio[0]; if ($val_rasio > 0) { $avg_rasio += $val_rasio; } //Reason $info = ""; $exp = explode("-", $get_rasio[1]); foreach ($exp as $alasan) { $exp2 = explode("~", $alasan); $info .= "<tr><td><small>" . $title_reason[$exp2[0]] . "</td><td>:</td><td>" . $exp2[1] . "</small></td></tr>"; } $rasio[$b] = "{info: '" . $info . "', titlez: '" . $person_nm . "', y: " . str_replace("%", "", GetOTRasio($b, "2015-12-15")) . ", id_emp: '" . $b . "', color: '#" . $val['color'] . "'}"; if ($val['grade'] != 100) { $legend[$val['grade']] = "<label class='legend_grafik' style='background:#" . $val['color'] . ";'> </label><label class='title_legend_grafik'>GRADE " . $val['grade'] . "</label>"; } } $this->data['avg_rasio'] = Decimal($avg_rasio / count($bawahan)); $this->data['limit_ot'] = GetConfigDirect("limit_ot_rasio_grafik"); if (count($legend) <= 2) { $this->data['width_legend'] = 35; } else { $this->data['width_legend'] = count($legend) * 10.5; } $legend['target'] = "<div class='clearfix'></div><label class='legend_grafik' style='width:30px;border-top:2px dashed #ff0000;height:3px;margin-top:8px;'> </label><label class='title_legend_grafik' style='width:100px;'>TARGET (" . $this->data['limit_ot'] . "%)</label>"; $legend['average'] = "<label class='legend_grafik' style='width:30px;border-top:2px dashed #008000;height:3px;margin-top:8px;'> </label><label class='title_legend_grafik' style='width:110px;'>AVERAGE (" . $this->data['avg_rasio'] . "%)</label>"; $this->data['legend'] = join('', $legend); //print_mz($nik); $wherez = join($where, ","); $q = $this->db->query("select person_nm,id_employee,ext_id,SUM(sakit) as sakit,SUM(cuti) as cuti,SUM(ijin) as ijin, SUM(alpa) as alpa,SUM(off) as off, SUM(jh) as jh\n from kg_view_attendance where id_employee in (" . $wherez . ") group by id_employee"); foreach ($q->result_array() as $r) { $id_emp = $r['id_employee']; if ($id_emp == $webmaster_id) { $id_emp = "-1"; } $hadir[$id_emp] = "{titlez: '" . $r['person_nm'] . "', y: " . $r['jh'] . ", id_emp: '" . $r['id_employee'] . "'}"; $off[$id_emp] = "{titlez: '" . $r['person_nm'] . "', y: " . $r['off'] . ", id_emp: '" . $r['id_employee'] . "'}"; $alpa[$id_emp] = "{titlez: '" . $r['person_nm'] . "', y: " . $r['alpa'] . ", id_emp: '" . $r['id_employee'] . "'}"; } ksort($hadir); ksort($off); ksort($alpa); $this->data['nik'] = join($nik, ','); $this->data['hadir'] = join($hadir, ','); $this->data['off'] = join($off, ','); $this->data['alpa'] = join($alpa, ','); $this->data['rasio'] = join($rasio, ','); $this->_render_page($this->filename . '/index_ot', $this->data); }
echo Decimal($cost_idr); ?> </td> <td><?php echo Decimal($in_idr - $cost_idr); ?> </td> </tr> <tr> <td>USD</td> <td><?php echo Decimal($in_usd); ?> </td> <td><?php echo Decimal($cost_usd); ?> </td> <td><?php echo $in_usd - $cost_usd; ?> </td> </tr> </table></td> </tr> <tr> <td width="14%" style="border-bottom:3px solid black;"><br/><br/><br/><br/><br/><br/><br/>SALES</td> <td width="21%"> </td> <td width="14%" style="border-bottom:3px solid black;"><br/><br/><br/><br/><br/><br/><br/>APPROVED BY </td> <td width="9%"> </td> <td> </td>
function GetKehadiranTahunan($thn) { $hadir = GetAll("kehadirandetil", array("jh" => "where/1", "tahun" => "where/" . $thn))->num_rows(); $absen = GetAll("kehadirandetil", array("jh" => "where/0", "tahun" => "where/" . $thn))->num_rows(); if (!$absen) { $absen = 1; } $persen = Decimal($hadir / ($hadir + $absen) * 100, 2) . " %"; return $persen; }
?> </td> <td><?php echo Decimal($out = $rin['save_type'] == 'out' ? $rin['rv'] : 0); ?> </td> <td><?php echo Decimal($usd_skrg = $idr_skrg + $in - $out); ?> </td> </tr><?php $totin += $in; $totout += $out; } ?> <tr> <td colspan="6"><strong>Total</strong></td> <td><strong><?php echo Decimal($totin); ?> </strong></td> <td><strong><?php echo Decimal($totout); ?> </strong></td> <td><strong><?php echo Decimal($usd_skrg); ?> </strong></td> </tr> </table>
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'); }