Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- defined('BASEPATH') OR exit('No direct script access allowed');
- class Absensi_model extends MY_Model {
- public $table = 'absensi';
- public function __construct()
- {
- parent::__construct();
- }
- public function Parse_Data($data,$p1,$p2){
- $data = " ".$data;
- $hasil = "";
- $awal = strpos($data,$p1);
- if ($awal != "") {
- $akhir = strpos(strstr($data,$p1),$p2);
- if ($akhir != ""){
- $hasil=substr($data,$awal+strlen($p1),$akhir-strlen($p1));
- }
- }
- return $hasil;
- }
- public function getPegawai(){
- $this->db->from('pegawai');
- $query = $this->db->get();
- return $query->result();
- }
- public function konekFp($IP, $port, $Key){
- $Connect = fsockopen($IP, $port, $errno, $errstr, 1);
- if ($Connect) {
- $soap_request = "<GetAttLog>
- <ArgComKey xsi:type=\"xsd:integer\">".$Key."</ArgComKey>
- <Arg><PIN xsi:type=\"xsd:integer\">All</PIN></Arg>
- </GetAttLog>";
- $newLine = "\r\n";
- fputs($Connect, "POST /iWsService HTTP/1.0".$newLine);
- fputs($Connect, "Content-Type: text/xml".$newLine);
- fputs($Connect, "Content-Length: ".strlen($soap_request).$newLine.$newLine);
- fputs($Connect, $soap_request.$newLine);
- $buffer = "";
- while($Response = fgets($Connect, 1024)) {
- $buffer = $buffer.$Response;
- }
- } else $buffer = "Koneksi Gagal";
- return $buffer;
- }
- public function semuadata()
- {
- $this->db->from($this->table);
- $this->db->join('pegawai', 'pegawai.no_absensi = absensi.no_absensi', 'left');
- $this->db->order_by('absensi.tanggal_masuk', 'desc');
- $query = $this->db->get();
- return $query->result();
- }
- public function deletebyid($id)
- {
- $this->db->where("id_absensi",$id)
- ->delete($this->table);
- return $this->db->affected_rows();
- }
- public function getdata($id)
- {
- $this->db->from($this->table);
- $this->db->where('id_absensi',$id);
- $query = $this->db->get();
- return $query->row();
- }
- public function save($data)
- {
- $this->db->insert($this->table, $data);
- $this->db->insert_id();
- return true;
- }
- public function update($id,$data)
- {
- $this->db->where("id_absensi",$id);
- $this->db->update($this->table,$data);
- return true;
- }
- public function cekAbsensi($pin, $tanggal, $jam)
- {
- $query=$this->db->where('no_absensi',$pin)
- ->where('tanggal_masuk',$tanggal)
- ->where('jam_masuk',$jam)
- ->get($this->table);
- if($query->num_rows() < 1 AND $pin <> ''){
- return TRUE;
- }else{
- return FALSE;
- }
- }
- public function cekNo($pin)
- {
- $query = $this->db->where('no_absensi', $pin)
- ->get('pegawai');
- if($query->num_rows() >= 1){
- return TRUE;
- }else{
- return FALSE;
- }
- }
- public function cekAda($pin, $tanggal)
- {
- $query = $this->db->where('no_absensi', $pin)
- ->where('tanggal_dibuat',$tanggal)
- ->get($this->table);
- if($query->num_rows() >= 1){
- return TRUE;
- }else{
- return FALSE;
- }
- }
- public function cekUdah($pin, $tanggal)
- {
- $query = $this->db->where('no_absensi', $pin)
- ->where('tanggal_masuk',$tanggal)
- ->get($this->table);
- if($query->num_rows() >= 1){
- return TRUE;
- }else{
- return FALSE;
- }
- }
- public function updateAbsensi($pin, $tanggal, $data)
- {
- $this->db->where("no_absensi", $pin);
- $this->db->where("tanggal_dibuat", $tanggal);
- $this->db->update($this->table, $data);
- return true;
- }
- public function getJamMasuk($pin, $tanggal)
- {
- $query=$this->db->where('no_absensi',$pin)
- ->where('tanggal_masuk',$tanggal)
- ->get($this->table);
- $out = $query->result_array();
- foreach ($out as $rs) {
- return $rs['jam_masuk'];
- }
- }
- public function getLembur($jadwal_pulang, $absen_pulang)
- {
- $jam_start = substr($jadwal_pulang, 0,2);
- $menit_start = substr($jadwal_pulang, 3,2);
- $jam_end = substr($absen_pulang, 0,2);
- $menit_end = substr($absen_pulang, 3,2);
- $date_awal = new DateTime($jam_start.":".$menit_start);
- $date_akhir = new DateTime($jam_end.":".$menit_end);
- $selisih = $date_akhir->diff($date_awal);
- $jam = $selisih->format('%h');
- $menit = $selisih->format('%i');
- if ($menit >= 30) {
- $jam = $jam+1;
- }
- if ($jam >= 4) {
- $jam = $jam-1;
- }
- $result = $jam - 1;
- return $result;
- }
- public function cekLain($pin, $jam_masux=0, $jam_pulanx=0)
- {
- $result = array();
- $sql = "Select t1.nama_lengkap,t1.id_pegawai,t1.id_grup,t2.*
- From pegawai t1
- Left join grup_pegawai t2 on t1.id_grup = t2.id_grup
- WHERE t1.no_absensi = $pin";
- $row = $this->db->query($sql);
- $str_jam_masuk = strtotime($jam_masux);
- $str_jam_pulang = strtotime($jam_pulanx);
- foreach($row->result_array() as $grupx){
- $dshift = trim(($grupx ? $grupx['id_shift'] : '{}'), '{}');
- $bshift = explode(',', $dshift);
- foreach($bshift as $id){
- $sql2 = "SELECT *
- FROM shift
- WHERE id_shift = ?
- ";
- $query = $this->db->query($sql2, array($id));
- foreach($query->result_array() as $grup){
- $jam_masuk = strtotime($grup['jadwal_datang']);
- $jam_pulang = strtotime($grup['jadwal_pulang']);
- $min_jam_masuk = strtotime($grup['jadwal_datang']."-2 hour");
- $max_jam_masuk = strtotime($grup['jadwal_pulang']."-2 hour");
- if($str_jam_masuk > $min_jam_masuk && $str_jam_masuk < $max_jam_masuk){
- if ($str_jam_masuk > $jam_masuk) {
- $output = $str_jam_masuk - $jam_masuk ;
- $result['telat'] = $output / 60;
- }else{
- $output = $str_jam_masuk - $jam_masuk ;
- $result['telat'] = $output / 60;
- }
- if ($jam_pulanx != 0) {
- if ($str_jam_pulang < $jam_pulang) {
- $output = $jam_pulang - $str_jam_pulang;
- $result['cepat'] = $output / 60;
- }else{
- $output = $jam_pulang - $str_jam_pulang;
- $result['cepat'] = $output / 60;
- }
- $result['lembur'] = $this->getLembur($grup['jadwal_pulang'], $jam_pulanx);
- }
- }
- }
- }
- }
- return $result;
- }
- public function getNow(){
- $now = date('Y-m-d');
- $sql = "Select t1.*, t2.nama_lengkap,t2.id_pegawai,t2.id_grup,t3.*
- From absensi t1
- Left join pegawai t2 on t1.no_absensi = t2.no_absensi
- Left join grup_pegawai t3 on t2.id_grup = t3.id_grup
- where t1.tanggal_masuk = '$now'
- Order by tanggal_masuk DESC";
- $rows = $this->db->query($sql);
- foreach($rows->result_array() as $row){
- $result[$row['id_absensi']] = array(
- 'id_absensi' => $row['id_absensi'],
- 'no_absensi' => $row['no_absensi'],
- 'nama_lengkap' => $row['nama_lengkap'],
- 'jam_masuk' => $row['jam_masuk'],
- 'jam_pulang' => $row['jam_pulang'],
- 'jam_efektif' => $row['jam_efektif'],
- 'jam_izin_keluar' => $row['jam_izin_keluar'],
- 'jam_izin_masuk' => $row['jam_izin_masuk'],
- 'pulang_cepat' => $row['pulang_cepat'],
- 'terlambat' => $row['terlambat'],
- 'keterangan' => $row['keterangan'],
- 'nama_grup' => $row['nama_grup'],
- 'lembur' => $row['lembur'],
- );
- $dshift = trim(($row ? $row['id_shift'] : '{}'), '{}');
- $bshift = explode(',', $dshift);
- foreach($bshift as $id){
- $sql2 = "SELECT *
- FROM shift
- WHERE id_shift = ?
- ";
- $query = $this->db->query($sql2, array($id));
- $str_jam_masuk = strtotime($row['jam_masuk']);
- foreach($query->result_array() as $grup){
- $jam_masuk = strtotime($grup['jadwal_datang']);
- $jam_pulang = strtotime($grup['jadwal_datang']);
- $min_jam_masuk = strtotime($grup['jadwal_datang']."-2 hour");
- $max_jam_masuk = strtotime($grup['jadwal_pulang']."-2 hour");
- if($str_jam_masuk > $min_jam_masuk && $str_jam_masuk < $max_jam_masuk){
- $result[$row['id_absensi']]['jadwal_datang'] = $grup['jadwal_datang'];
- $result[$row['id_absensi']]['jadwal_pulang'] = $grup['jadwal_pulang'];
- $result[$row['id_absensi']]['nama_shift'] = $grup['nama_shift'];
- }
- }
- }
- }
- return $result;
- }
- public function get_pengaturan($nama){
- $query=$this->db->where('pengaturan',$nama)
- ->get('pengaturan');
- return $query->row_array();
- }
- // public function getShift()
- // {
- // $sql = "Select t1.*, t2.nama_lengkap,t2.id_pegawai,t2.id_grup,t3.*
- // From absensi t1
- // Left join pegawai t2 on t1.no_absensi = t2.no_absensi
- // Left join grup_pegawai t3 on t2.id_grup = t3.id_grup
- // Left join shift t4 on t3.id_grup = t4.id_grup
- // Order by tanggal_masuk DESC";
- // $rows = $this->db->query($sql);
- // foreach($rows->result_array() as $row){
- // $result[$row['id_absensi']] = array(
- // 'id_absensi' => $row['id_absensi'],
- // 'no_absensi' => $row['no_absensi'],
- // 'nama_lengkap' => $row['nama_lengkap'],
- // 'jam_masuk' => $row['jam_masuk'],
- // 'jam_pulang' => $row['jam_pulang'],
- // 'jam_izin_keluar' => $row['jam_izin_keluar'],
- // 'jam_izin_masuk' => $row['jam_izin_masuk'],
- // 'pulang_cepat' => $row['pulang_cepat'],
- // 'terlambat' => $row['terlambat'],
- // 'keterangan' => $row['keterangan'],
- // );
- // $sql2 = "SELECT t1.*, t2.*
- // FROM grup_pegawai t1
- // LEFT JOIN shift t2 ON t2.id_grup = t1.id_grup
- // WHERE t2.id_grup = ?";
- // $query = $this->db->query($sql2, array($row['id_grup']));
- // $str_jam_masuk = strtotime($row['jam_masuk']);
- // foreach($query->result_array() as $grup){
- // // nentuin shift
- // $jam_masuk = strtotime($grup['jadwal_datang']);
- // $jam_pulang = strtotime($grup['jadwal_datang']);
- // $min_jam_masuk = strtotime($grup['jadwal_datang']."-1 hour");
- // $max_jam_masuk = strtotime($grup['jadwal_pulang']."-1 hour");
- // if($grup['nama_grup']) {
- // if($str_jam_masuk > $min_jam_masuk && $str_jam_masuk < $max_jam_masuk){
- // $result[$row['id_absensi']]['jadwal_datang'] = $grup['jadwal_datang'];
- // $result[$row['id_absensi']]['jadwal_pulang'] = $grup['jadwal_pulang'];
- // $result[$row['id_absensi']]['nama_grup'] = $grup['nama_grup'];
- // }
- // }
- // }
- // }
- // return $result;
- // }
- /*public function cekLain($pin, $jam_masux=0, $jam_pulanx=0)
- {
- $result = array();
- $sql = "
- SELECT t3.jadwal_datang, t3.jadwal_pulang
- FROM pegawai t1
- LEFT JOIN grup_pegawai t2 USING(id_grup)
- LEFT JOIN shift t3 ON t3.id_grup = t2.id_grup
- WHERE t1.no_absensi = $pin
- ";
- $query = $this->db->query($sql);
- $str_jam_masuk = strtotime($jam_masux);
- $str_jam_pulang = strtotime($jam_pulanx);
- foreach($query->result_array() as $grup){
- $jam_masuk = strtotime($grup['jadwal_datang']);
- $jam_pulang = strtotime($grup['jadwal_pulang']);
- $min_jam_masuk = strtotime($grup['jadwal_datang']."-1 hour");
- $max_jam_masuk = strtotime($grup['jadwal_pulang']."-1 hour");
- if($str_jam_masuk > $min_jam_masuk && $str_jam_masuk < $max_jam_masuk){
- if ($str_jam_masuk > $jam_masuk) {
- $output = $str_jam_masuk - $jam_masuk ;
- $result['telat'] = $output / 60;
- }else{
- $output = $str_jam_masuk - $jam_masuk ;
- $result['telat'] = $output / 60;
- }
- if ($jam_pulanx != 0) {
- if ($str_jam_pulang < $jam_pulang) {
- $output = $jam_pulang - $str_jam_pulang;
- $result['cepat'] = $output / 60;
- }else{
- $output = $jam_pulang - $str_jam_pulang;
- $result['cepat'] = $output / 60;
- }
- }
- }
- }
- return $result;
- }*/
- }
- /* End of file Absensi_model.php */
- /* Location: ./application/models/Absensi_model.php */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement