Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(null);
- $act = $_POST['act'];
- if($act=="excel"){
- header("Content-type: application/vnd-ms-excel");
- header("Content-Disposition: attachment; filename=Report-Absensi-".date('Ymdhis').".xls");
- }
- ?>
- <title>Print Report</title>
- <style type="text/css">
- @media print {
- .printPageButton {
- display: none;
- }
- @page { margin: 0; }
- body { margin: 1.6cm; }
- }
- </style>
- <div>
- <?php
- //Tanggal
- $tgl_start1 = $gen_controller->date_indo_default($_POST['tgl_mulai']);
- if(!empty($_POST['tgl_selesai'])){
- $tgl_end1 = $gen_controller->date_indo_default($_POST['tgl_selesai']);
- }
- else {
- $tgl_end1 = $tgl_start1;
- }
- $tgl_start = str_replace("-","",$tgl_start1);
- $tgl_end = str_replace("-","",$tgl_end1);
- $no =1;
- $range=array($tgl_start,$tgl_end);
- $rangeStart=strtotime(substr($range[0],0,4)."-".substr($range[0], 4,2)."-".substr($range[0],6));
- $rangeEnd=strtotime(substr($range[1],0,4)."-".substr($range[1], 4,2)."-".substr($range[1],6));
- $arrField=array();
- // $_style="style='border:1px solid #000000;'";
- $_style="";
- $arrHeader=array('No','NIP','Nama','Bulan','Telat','Alpha','Biaya/Jumlah Jam Mengajar');
- //get data absen
- $sql_jns_absensi="Select * from ms_jns_absensi";
- $result_jns_absensi=$db->Execute($sql_jns_absensi);
- while($row=$result_jns_absensi->FetchRow()){
- foreach($row as $key=>$val){
- $key=strtolower($key);
- $$key=$val;
- }
- $arrHeaderSub[]=array('jns_absensi_initial'=>$jns_absensi_initial,'id_jns_absensi'=>$id_jns_absensi);
- $arrField[]=$jns_absensi;
- $fields =$fields.",".$jns_absensi;
- $arrLegend[]=$jns_absensi_initial." : ".$jns_absensi;
- }
- $fields =substr($fields,1);
- $arrBulan=array(
- "01"=>"Januari",
- "02"=>"Februari",
- "03"=>"Maret",
- "04"=>"April",
- "05"=>"Mei",
- "06"=>"Juni",
- "07"=>"Juli",
- "08"=>"Agustus",
- "09"=>"September",
- "10"=>"Oktober",
- "11"=>"November",
- "12"=>"Desember",
- );
- $arrIsi=array('nip','nama_lengkap');
- $arr_jns_absen=array();
- $sql_abseni="select * from ms_jns_absensi";
- $result_jns_absensi=$db->Execute($sql_abseni);
- while($row=$result_jns_absensi->FetchRow()){
- foreach($row as $key=>$val){
- $key=strtolower($key);
- $$key=$val;
- }
- $arr_jns_absen[$jns_absensi_initial]=$id_jns_absensi;
- }
- //print_r($arr_jns_absen);
- $dum=0;
- $strDum='';
- $strDum1='';
- $numAktif=0;
- $_num=count($arrHeader);
- $_data="<table id='example' border='1'>
- <tr>";
- $_num=count($arrHeader);
- for($i=0;$i<$_num;$i++)
- if($arrHeader[$i]=='Bulan'){
- for($j=$rangeStart;$j<=$rangeEnd;$j+=86400){ //inc per day=86400 second
- //cetak header bulan
- if($dum<date('Ym',$j)) //cek bulan berbeda
- {
- $dum=date('Ym',$j);
- $bln=date('m',$j);
- $thn=date('Y',$j);
- $tgl_max=cal_days_in_month(CAL_GREGORIAN, $bln, $thn);
- $tgl_max=($bln==date('m',$rangeEnd))?date('d',$rangeEnd):$tgl_max; //max tgl range dlm bulan
- $_end=strtotime("$thn-$bln-$tgl_max");
- //$nspan=$ab->getWorkingDays($j, $_end, array());
- $nspan=($_end-$j)/86400+1;
- $numAktif+=$nspan;
- //echo ">>$numAktif<br>";
- //if($action == 'print'){
- $_data.="
- <th $_style colspan=".($nspan)."> ".$arrBulan[$bln]." $thn</th>";
- }
- //cetak header tgl
- $tgl=date('d',$j);
- $tgl1=date('D',$j);
- $tgl2=date('Y-m-d',$j);
- $dayOfWeek=date('w',$j);
- if($dayOfWeek==0||$dayOfWeek==6){//skip minggu n sabtu
- //continue;
- $clr="class='center text-center' style='background-color:red;color:white'";
- $strDum.="
- <td $_style $clr>$tgl<br>$tgl1</td>";
- }else {
- //Check Hari Libur
- $chk2 = $db->getRow("select ms.hari_libur
- from ms_hari_libur as ms
- inner join tr_hari_libur as tr
- on ms.id_hari_libur=tr.id_hari_libur
- where tr.tgl='".$tgl2."' and ms.tahun='".$web['tahun']."'");
- if(!empty($chk2)){
- $clr="class='center text-center' style='background-color:red;color:white'";
- }
- else {
- $clr="class='center text-center'";
- }
- $strDum.="
- <th $_style $clr>$tgl<br>$tgl1</th>";
- }
- }
- }
- else{
- $_data.="
- <th ".$_style." rowspan=2><br/> ".$arrHeader[$i]."</th>";
- }
- $_data.="</tr><tr ".$_style.">".$strDum." ".$strDum1;
- $add_where="";
- $us_array = array();
- $us_array['id_level'] = 'lv_18061909233_88';
- $us_array['status'] = '1';
- if(!empty($_POST['id_karyawan'])){
- $us_array['userid_absen'] = $_POST['id_karyawan'];
- $data_us = $gen_model->GetWhere('ms_user',$us_array);
- }
- else if(!empty($_POST['posisi'])){
- $us_array['id_posisi'] = $_POST['posisi'];
- $data_us = $gen_model->GetWhere('ms_user',$us_array);
- }
- else if(!empty($_POST['shift'])){
- $add_where = " and ab.id_shift_absensi='".$_POST['shift']."' ";
- $sql_query = "select us.*
- from ms_user as us
- inner join tr_shift_absensi_peg as tr
- on us.id_user=tr.id_user
- where tr.id_tr_shift_pegawai='".$_POST['shift']."' ";
- $data_us=$db->Execute($sql_query);
- }
- else {
- $data_us = $gen_model->GetWhere('ms_user',$us_array);
- }
- while($list = $data_us->FetchRow()){
- foreach($list as $key=>$val){
- $key=strtolower($key);
- $$key=$val;
- }
- $_data .= "</tr>";
- $_data .= "<tr ".$class.">";
- $_data .= "<td align=center ".$_style.">".($no+$start).'.'."</td>";
- $sql1 = "select tra.jam_masuk as shift_jam_masuk,tra.jam_keluar as shift_jam_keluar,tra.awal_masuk as term_masuk,tra.akhir_keluar as term_keluar,
- ab.tgl as tanggal_1,tra.jenis_shift,us.join_date,us.nip,us.id_user,us.nama_lengkap,ab.*
- from ms_user as us
- inner join tr_absensi_peg as ab on ab.id_user=us.id_user
- inner join tr_shift_absensi as tra on tra.id_shift_absensi = ab.id_shift_absensi
- where us.nip='".$nip."' ".$add_where." and ab.tgl >= '".$tgl_start1."' and ab.tgl <= '".$tgl_end1."'
- ";
- $_num=count($arrIsi);
- for($i=0;$i<$_num;$i++){
- $_data .="<td ".$_style.">".$$arrIsi[$i]."</td>";
- }
- $absensi_array=array();
- $result1=$db->Execute($sql1);
- $arrFieldValue=array();
- while($row=$result1->FetchRow()){
- foreach($row as $key=>$val){
- $key=strtolower($key);
- $$key=$val;
- }
- for($i=0;$i<count($arrField);$i++){
- $_arrFieldValue=$row[$arrField[$i]];
- $arrFieldValue[$arrField[$i]]+=$_arrFieldValue;
- }
- foreach($row as $key=>$val){
- $key=strtolower($key);
- $$key=$val;
- }
- $split_tipe=explode("|", $tipe);
- $tipe1=array_search($split_tipe[0], $arr_jns_absen);
- $tipe2=array_search($split_tipe[1], $arr_jns_absen);
- if(empty($tipe2)){
- $tipe=$tipe1;
- }else{
- $tipe=$tipe1."|".$tipe2;
- }
- $arr_tanggal_absen=explode("-",$tanggal_1);
- $tanggal_2=strtotime(date("Y-m-d", mktime(0, 0, 0, $arr_tanggal_absen[1], $arr_tanggal_absen[2], $arr_tanggal_absen[0])));
- $tanggal=date("Y-m-d",$tanggal_2);
- $absensi_array[$tanggal]=array('arr_jam_masuk'=>$jam_masuk,
- 'arr_jam_keluar'=>$jam_keluar,
- 'arr_tgl'=>substr($tanggal_1,0,10),
- 'arr_term_jam_masuk'=>$term_masuk,
- 'arr_term_jam_keluar'=>$term_keluar,
- 'arr_shift_jam_masuk'=>$shift_jam_masuk,
- 'arr_shift_jam_keluar'=>$shift_jam_keluar,
- 'arr_id'=>$id_absensi,
- 'arr_id_jns_abs'=>$id_jns_absensi,
- 'arr_tipe'=>$jenis_shift
- );
- }
- //$f->pre($arrFieldValue);
- $_num=count($arrIsi);
- $hitung_umkn=0;
- $total_waktu=0;
- $total_telat=0;
- $total_tdk_hadir=0;
- $total_final=0;
- for($j=$rangeStart;$j<=$rangeEnd;$j+=86400){
- $txt='';
- $key=date('Y-m-d',$j);
- $dayOfWeek2=date('w',$j);
- //$f->pre($key);
- $jam_keluar_d='';
- $jam_masuk_d='';
- $term_masuk_d='';
- $term_keluar_d='';
- $tgl_d='';
- //jam absen pegawai
- $jam_masuk_d=$absensi_array[$key]['arr_jam_masuk'];
- $jam_keluar_d=$absensi_array[$key]['arr_jam_keluar'];
- $tgl_d=$absensi_array[$key]['arr_tgl'];
- //jam awal masuk dan keluar
- $term_jam_masuk_d=$absensi_array[$key]['arr_term_jam_masuk'];
- $term_jam_keluar_d=$absensi_array[$key]['arr_term_jam_keluar'];
- //jam kerja masuk dan keluar
- $shift_jam_masuk=$absensi_array[$key]['arr_shift_jam_masuk'];
- $shift_jam_keluar=$absensi_array[$key]['arr_shift_jam_keluar'];
- $id_jns_absensi=$absensi_array[$key]['arr_id_jns_abs'];
- $tipe=$absensi_array[$key]['arr_tipe'];
- $note = "";
- $var=explode(',',$id_jns_absensi);
- foreach($var as $row){
- if($row=="1"){
- $total_telat +=1;
- }
- $note .= $gen_model->getOne("jns_absensi_initial","ms_jns_absensi",array('id_jns_absensi'=>$row))." ";
- }
- //Check Hari Libur
- $chk = $db->getRow("select ms.hari_libur
- from ms_hari_libur as ms
- inner join tr_hari_libur as tr
- on ms.id_hari_libur=tr.id_hari_libur
- where tr.tgl='".$key."' and ms.tahun='".$web['tahun']."'");
- $stlye_td="";
- if(!empty($chk)){
- $txt = "LBR_NSN <br/>".$chk['hari_libur'];
- $stlye_td=" style='background-color:red;color:white' ";
- }
- else if($dayOfWeek2==0||$dayOfWeek2==6){
- $stlye_td=" style='background-color:red;color:white' ";
- $txt = "LBR <br/>";
- }
- else {
- if($key>=date('Y-m-d')){
- $txt='';
- }
- else {
- $my_note="";
- if(trim($note)!=""){
- $my_note=$note;
- }
- else if(empty($jam_masuk_d)){
- $my_note="A";
- $total_tdk_hadir +=1;
- }
- $selisih ="";
- $sub_biaya ="";
- //Datang Cepat dan Pulang Cepat
- if($jam_masuk_d < $shift_jam_masuk and $jam_keluar_d < $shift_jam_keluar){
- $selisih = $gen_controller->selisih_jam($shift_jam_masuk,$jam_keluar_d);
- $total_waktu += $gen_controller->count_time($shift_jam_masuk,$jam_keluar_d);
- $sub_biaya = $gen_controller->count_time($shift_jam_masuk,$jam_keluar_d);
- }
- //Datang Cepat dan Pulang Lama
- else if($jam_masuk_d < $shift_jam_masuk and $jam_keluar_d > $shift_jam_keluar){
- $selisih = $gen_controller->selisih_jam($shift_jam_masuk,$shift_jam_keluar);
- $total_waktu += $gen_controller->count_time($shift_jam_masuk,$shift_jam_keluar);
- $sub_biaya = $gen_controller->count_time($shift_jam_masuk,$shift_jam_keluar);
- }
- //Datang Lama dan Pulang Cepat
- else if($jam_masuk_d > $shift_jam_masuk and $jam_keluar_d < $shift_jam_keluar){
- $selisih = $gen_controller->selisih_jam($jam_masuk_d,$jam_keluar_d);
- $total_waktu += $gen_controller->count_time($jam_masuk_d,$jam_keluar_d);
- $sub_biaya += $gen_controller->count_time($jam_masuk_d,$jam_keluar_d);
- }
- //Datang Lama dan Pulang Lama
- else if($jam_masuk_d > $shift_jam_masuk and $jam_keluar_d < $shift_jam_keluar){
- $selisih = $gen_controller->selisih_jam($jam_masuk_d,$shift_jam_keluar);
- $total_waktu += $gen_controller->count_time($jam_masuk_d,$shift_jam_keluar);
- $sub_biaya += $gen_controller->count_time($jam_masuk_d,$shift_jam_keluar);
- }
- else {
- $selisih = $gen_controller->selisih_jam($jam_masuk_d,$jam_keluar_d);
- $total_waktu += $gen_controller->count_time($jam_masuk_d,$jam_keluar_d);
- $sub_biaya += $gen_controller->count_time($jam_masuk_d,$jam_keluar_d);
- }
- $total_biaya = $gen_controller->convertToHoursMins($sub_biaya);
- $total_final +=$gen_controller->biaya_mengajar($total_biaya);
- $txt="<span >".$my_note."
- <br>".
- $jam_masuk_d."
- <br>".
- $jam_keluar_d."
- <br>
- ".$selisih."
- <br>
- ".$tipe."
- </span>";
- }
- }
- $_data .="<td ".$stlye_td." align='center'>".$txt."</td>";
- $arrtipe=explode(' ',$absensi_array[$key]['arr_tipe']);
- }
- $_data .="<td align='center'>".$total_telat."</td>";
- $_data .="<td align='center'>".$total_tdk_hadir."</td>";
- $_data .="<td align='center'>Rp. ".number_format($total_final,0,',','.')." <br/>
- ".$gen_controller->convertToHoursMins($total_waktu,'full')."
- </td>";
- $no++;
- }
- if($act=="excel" or $act=="pdf"){
- }
- else {
- echo "<div onClick='window.print();' class='printPageButton'><center><button >Print</button> ";
- echo "<button class='printPageButton' onclick='report(1)' >Export Excel</button> ";
- echo "<button class='printPageButton' onclick='report(2)'>Export PDF</button><br/></center></div>";
- }
- echo $_data;
- ?>
- </table>
- <table border="1">
- <tr>
- <td><b>Inisial</b></td>
- <td><b>Keterangan</b></td>
- </tr>
- <?php
- $data_jns = $gen_model->GetWhere('ms_jns_absensi');
- while($list = $data_jns->FetchRow()){
- foreach($list as $key=>$val){
- $key=strtolower($key);
- $$key=$val;
- }
- ?>
- <tr>
- <td style="width:10%" align="center"><?php echo $jns_absensi_initial ?></td>
- <td ><?php echo $jns_absensi ?></td>
- </tr>
- <?php } ?>
- </table>
- </div>
- <script type="text/javascript">
- function report(id){
- var form = document.createElement("form");
- form.setAttribute("method", 'POST');
- var hiddenField1 = document.createElement("input");
- hiddenField1.setAttribute("type", "hidden");
- hiddenField1.setAttribute("name", 'tgl_mulai');
- hiddenField1.setAttribute("value", '<?php echo $_POST['tgl_mulai'] ?>');
- var hiddenField2 = document.createElement("input");
- hiddenField2.setAttribute("type", "hidden");
- hiddenField2.setAttribute("name", 'tgl_selesai');
- hiddenField2.setAttribute("value", '<?php echo $_POST['tgl_selesai'] ?>');
- var hiddenField3 = document.createElement("input");
- hiddenField3.setAttribute("type", "hidden");
- hiddenField3.setAttribute("name", 'id_karyawan');
- hiddenField3.setAttribute("value", '<?php echo $_POST['id_karyawan'] ?>');
- var hiddenField4 = document.createElement("input");
- hiddenField4.setAttribute("type", "hidden");
- hiddenField4.setAttribute("name", 'posisi');
- hiddenField4.setAttribute("value",'<?php echo $_POST['posisi'] ?>');
- var hiddenField5 = document.createElement("input");
- hiddenField5.setAttribute("type", "hidden");
- hiddenField5.setAttribute("name", 'shift');
- hiddenField5.setAttribute("value",'<?php echo $_POST['shift'] ?>');
- form.appendChild(hiddenField1);
- form.appendChild(hiddenField2);
- form.appendChild(hiddenField3);
- form.appendChild(hiddenField4);
- form.appendChild(hiddenField5);
- if(id=='1') { //Excel
- form.setAttribute("action", '<?php echo $basepath ?>report_absensi/print');
- var hiddenField4 = document.createElement("input");
- hiddenField4.setAttribute("type", "hidden");
- hiddenField4.setAttribute("name", 'act');
- hiddenField4.setAttribute("value", 'excel');
- }
- else if(id=='2') { //PDF
- form.setAttribute("action", '<?php echo $basepath ?>report_absensi/print_pdf');
- var hiddenField4 = document.createElement("input");
- hiddenField4.setAttribute("type", "hidden");
- hiddenField4.setAttribute("name", 'act');
- hiddenField4.setAttribute("value", 'pdf');
- }
- form.appendChild(hiddenField4);
- document.body.appendChild(form);
- form.submit();
- }
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement