Files
2026-06-13 16:02:07 +10:00

135 lines
4.7 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class AbsensiModel extends CI_Model {
public function create($table, $data, $batch = false)
{
if($batch === false){
$insert = $this->db->insert($table, $data);
}else{
$insert = $this->db->insert_batch($table, $data);
}
return $insert;
}
public function update($table, $data, $pk, $id = null, $batch = false)
{
if($batch === false){
$insert = $this->db->update($table, $data, array($pk => $id));
}else {
$insert = $this->db->update_batch($table, $data, $pk);
}
return $insert;
}
public function delete($table, $data, $pk)
{
$this->db->where_in($pk, $data);
return $this->db->delete($table);
}
public function getData_Absensi_byKARYAWAN_byTGL_forSync($id, $tgl) {
$this->db->select('*');
$this->db->from('absensi');
$this->db->where('KARYAWAN_ID=', $id);
$this->db->where('TGL_ABSENSI=', $tgl);
return $this->db->get()->result_array();
}
public function getData_SalesVisit_groupSALES_status0() {
$this->db->select('*');
$this->db->from('sales_visit');
$this->db->where('STATUS_SAV=0');
$this->db->group_by('SALES_ID');
return $this->db->get()->result_array();
}
public function getData_SalesVisit_bySALES_status0($id) {
$this->db->select('*');
$this->db->from('sales_visit');
$this->db->where('STATUS_SAV=0');
$this->db->where('SALES_ID=', $id);
return $this->db->get()->result_array();
}
public function getData_DaftarSalesVisit_bySAV_orderDESC_limit1($id) {
$this->db->select('*');
$this->db->from('daftar_salesvisit a');
$this->db->join('sales_visit b','b.ID_SAV=a.SAV_ID');
$this->db->where('a.SAV_ID=', $id);
$this->db->order_by('a.ID_DSAV DESC');
$this->db->limit('1');
return $this->db->get()->result_array();
}
public function getDataAbsensi()
{
$this->db->select('*, b.NAMA_PANGGILAN_KARYAWAN');
$this->db->from('absensi a');
$this->db->join('karyawan b', 'b.ID_KARYAWAN=a.KARYAWAN_ID');
return $this->db->get()->result_array();
}
public function getCetak($bulan_awal, $tahun_awal, $bulan, $tahun)
{
$this->db->select('*, b.NAMA_PANGGILAN_KARYAWAN');
$this->db->from('absensi a');
$this->db->join('karyawan b', 'b.ID_KARYAWAN=a.KARYAWAN_ID');
//$this->db->where('a.TGL_ABSENSI LIKE "' . $tahun . '-' . $bulan . '%" ORDER BY a.KARYAWAN_ID ASC, a.TGL_ABSENSI ASC');
$this->db->where('a.TGL_ABSENSI >= "' . $tahun_awal . '-' . $bulan_awal . '-26"');
$this->db->where('a.TGL_ABSENSI <= "' . $tahun . '-' . $bulan . '-25" ORDER BY a.KARYAWAN_ID ASC, a.TGL_ABSENSI ASC');
// SELECT KARYAWAN_ID, COUNT(*)
// FROM absensi
// WHERE TELAT="YA"
// GROUP BY KARYAWAN_ID;
return $this->db->get()->result_array();
}
public function cekAbsensi($id, $tgl)
{
$this->db->select('*');
$this->db->from('absensi');
$this->db->where('KARYAWAN_ID=' . $id );
$this->db->where('TGL_ABSENSI = "' . $tgl . '" ORDER BY JAM_MASUK DESC LIMIT 1');
return $this->db->get()->result_array();
}
//belum bisa dipakai
public function total_telat($id)
{
//$telat='YA';
$this->db->select('*');
$this->db->from('absensi');
$this->db->where('KARYAWAN_ID ="' . $id . '" AND TELAT = "YA"');
//SELECT * FROM `absensi` WHERE KARYAWAN_ID = '1' AND TELAT = 'YA';
return $this->db->count_all_results();
}
public function getTelat()
{
$this->db->select('KARYAWAN_ID, COUNT(*)');
$this->db->from('absensi');
$this->db->where('TELAT="YA" GROUP BY KARYAWAN_ID');
return $this->db->get()->result_array();
//return $this->db->query("SELECT KARYAWAN_ID, COUNT(*) FROM absensi WHERE TELAT='YA' GROUP BY KARYAWAN_ID");
}
public function getDetailAbsensi($bulan_awal, $tahun_awal, $bulan_akhir, $tahun_akhir)
{
$this->db->select('*, b.NAMA_PANGGILAN_KARYAWAN, (SELECT COUNT(*) FROM absensi WHERE TELAT="YA" AND KARYAWAN_ID=b.ID_KARYAWAN AND TGL_ABSENSI BETWEEN "' . $tahun_awal . '-' . $bulan_awal . '-26" AND "' . $tahun_akhir . '-' . $bulan_akhir . '-25") AS TOTAL_TELAT ');
$this->db->from('absensi a');
$this->db->join('karyawan b', 'b.ID_KARYAWAN=a.KARYAWAN_ID');
$this->db->where('a.TGL_ABSENSI >= "' . $tahun_awal . '-' . $bulan_awal . '-26"');
$this->db->where('a.TGL_ABSENSI <= "' . $tahun_akhir . '-' . $bulan_akhir . '-25" ORDER BY a.KARYAWAN_ID ASC, a.TGL_ABSENSI ASC');
return $this->db->get()->result_array();
// select *, b.NAMA_PANGGILAN_KARYAWAN, (SELECT COUNT(*) AS TOTAL_TELAT
// FROM absensi
// WHERE TELAT="YA" AND KARYAWAN_ID="7")
// from absensi a
// join karyawan b on b.ID_KARYAWAN=a.KARYAWAN_ID
// where a.TGL_ABSENSI >= "2020-03-26" AND a.TGL_ABSENSI <= "2020-04-25" ORDER BY a.KARYAWAN_ID ASC, a.TGL_ABSENSI ASC
}
}