Files
Antrean-Reguler/application/models/m_loket.php
2025-05-14 12:02:52 +07:00

350 lines
14 KiB
PHP

<?php
class M_loket extends CI_Model {
function index() {
$query = $this->db->get('master_loket');
return $query->result();
}
function insert() {
$datpelayanan = "";
if(isset($_POST['klinik'])){
$dataklinik=$this->input->post('klinik');
$jumlahklinik = count($this->input->post('klinik'));
for($x = 0; $x <= $jumlahklinik; $x++){
if(isset($dataklinik[$x])){
$datpelayanan = $datpelayanan.$dataklinik[$x].",";
}
}
}
$insert_loket = array(
'ml_nama' => $this->input->post('nama'),
'ml_pelayanan' => $datpelayanan,
'ml_quota_bangku' => $this->input->post('quota'),
'ml_pembayaran' => $this->input->post('pembayaran'),
'ml_online' => $this->input->post('online'),
'ml_statuspelayanan'=> $this->input->post('statuspelayanan'),
);
$insert = $this->db->insert('master_loket', $insert_loket);
}
function edit($id) {
$this->db->where('ml_id', $id);
$query = $this->db->get('master_loket');
return $query;
}
function prosesedit() {
$datpelayanan = "";
if(isset($_POST['klinik'])){
$dataklinik=$this->input->post('klinik');
$jumlahklinik = count($this->input->post('klinik'));
for($x = 0; $x <= $jumlahklinik; $x++){
if(isset($dataklinik[$x])){
$datpelayanan = $datpelayanan.$dataklinik[$x].",";
}
}
}
$update_loket = array(
'ml_nama' => $this->input->post('nama'),
'ml_pelayanan' => $datpelayanan,
'ml_quota_bangku' => $this->input->post('quota'),
'ml_pembayaran' => $this->input->post('pembayaran'),
'ml_online' => $this->input->post('online'),
'ml_statuspelayanan'=> $this->input->post('statuspelayanan'),
);
$id = $this->input->post('id');
$this->db->where('ml_id', $id);
$this->db->update('master_loket', $update_loket);
}
function view($id) {
$this->db->where('ml_id', $id);
$query = $this->db->get('master_loket');
return $query;
}
function delete($id) {
$this->db->where('ml_id', $id);
$this->db->delete('master_loket');
}
//-------------------------------------Loket Admin--------------------------------//
function pengunjung() {
$this->db->order_by('pp_fasttrack', 'desc');
$this->db->order_by('pp_tanggal_datang', 'asc');
$this->db->join('proses_pengunjung', 'pp_id = prt_pengunjung_id', 'left');
$this->db->join('master_klinik', 'mk_id = pp_klinik_id', 'left');
$this->db->where('pp_tanggal_periksa', date('Y-m-d'));
$this->db->where('pp_loket', $this->session->userdata('s_loket'));
$this->db->where('prt_aktif ', '0');
$this->db->where('prt_status <', '5');
$query = $this->db->get('proses_ruang_tunggu');
return $query->result();
}
function pengunjungklinik() {
$this->db->join('proses_pengunjung', 'pp_id = prt_pengunjung_id', 'left');
$this->db->join('master_klinik', 'mk_id = pp_klinik_id', 'left');
$this->db->where('pp_tanggal_periksa', date('Y-m-d'));
$this->db->where('prt_aktif ', '0');
$this->db->where('prt_status >', '3');
$this->db->where('prt_status <', '6');
$query = $this->db->get('proses_ruang_tunggu');
return $query->result();
}
function panggil($jumlah){
$iduser = $this->session->userdata('s_ID_User');
$dataklinik="";
$datapembayaran="";
$this->db->join('master_loket', 'ml_id = mu_loket_id');
$this->db->where('mu_id', $iduser);
$user = $this->db->get('master_user');
foreach ($user->result() as $datuser){
$dataklinik = $datuser->ml_pelayanan;
$datapembayaran = $datuser->ml_pembayaran;
}
$klinikpecah = explode(",",$dataklinik);
//$this->db->join('proses_ruang_tunggu', 'prt_pengunjung_id = pp_id','LEFT');
$this->db->order_by('pp_tanggal_datang', 'asc');
$this->db->or_where_in('pp_klinik_id', $klinikpecah);
$this->db->where('pp_status', null);
$this->db->where('pp_tanggal_periksa', date('Y-m-d'));
$this->db->where('pp_pembayaran', $datapembayaran);
$pengunjung = $this->db->get('proses_pengunjung');
$nomor=1;
$this->db->join('proses_pengunjung', 'pp_id = prt_pengunjung_id');
$this->db->where('pp_tanggal_periksa', date("Y-m-d"));
$this->db->where('prt_aktif', 2);
$rt = $this->db->get('proses_ruang_tunggu');
foreach ($rt->result() as $datruangtunggu){
if($nomor<=$jumlah){$nomor++;
$update_ruangtunggu = array(
'prt_aktif' => 0,
);
$this->db->where('prt_id', $datruangtunggu->prt_id);
$this->db->update('proses_ruang_tunggu', $update_ruangtunggu);
$updatepengunjung = array('pp_status'=> 1,'pp_panggil_anjungan'=> date("Y-m-d H:i:s"));
$this->db->where('pp_id', $datruangtunggu->pp_id);
$this->db->update('proses_pengunjung', $updatepengunjung);
}
}
foreach ($pengunjung->result() as $datpengunjung){
$this->db->where('mk_id', $datpengunjung->pp_klinik_id);
$kl = $this->db->get('master_klinik');
foreach ($kl->result() as $datklinik){
//-------------cek shift buka----------//
if($datpengunjung->pp_shift <= $datklinik->mk_shift_buka){
//echo $datpengunjung->pp_id; echo $nomor;
if($nomor<=$jumlah){$nomor++;
$input_ruangtunggu = array(
'prt_status' => 0,
'prt_tanggal' => date("Y-m-d H:i:s"),
'prt_aktif' => 0,
'prt_pengunjung_id' => $datpengunjung->pp_id,
);
$insert = $this->db->insert('proses_ruang_tunggu', $input_ruangtunggu);
$updatepengunjung = array('pp_status'=> 1,'pp_panggil_anjungan'=> date("Y-m-d H:i:s"),'pp_loket'=>$this->session->userdata('s_loket'));
//$updatepengunjung = array('pp_status'=> 1,'pp_panggil_anjungan'=> date("Y-m-d H:i:s"));
$this->db->where('pp_id', $datpengunjung->pp_id);
$this->db->update('proses_pengunjung', $updatepengunjung);
}
}
}
}
}
function proses($pengunjung,$kode){
$update_rt = array(
'prt_status' => $kode,
);
$this->db->where('prt_id', $pengunjung);
$this->db->update('proses_ruang_tunggu', $update_rt);
}
function barcode($pengunjung){
$update_prt = array(
'prt_status' =>1,
);
$this->db->where('prt_id', $pengunjung);
$this->db->update('proses_ruang_tunggu', $update_prt);
}
function terlambat($pengunjung){
$update_prt = array(
'prt_aktif' =>1,
'prt_status' =>0,
);
$this->db->where('prt_id', $pengunjung);
$this->db->update('proses_ruang_tunggu', $update_prt);
}
function aktif($pengunjung){
$update_prt = array(
'prt_aktif' =>0,
'prt_status' =>1,
);
$this->db->where('prt_id', $pengunjung);
$this->db->update('proses_ruang_tunggu', $update_prt);
}
function infopengunjung(){
$this->db->join('proses_ruang_tunggu', 'prt_pengunjung_id = pp_id','LEFT');
$this->db->where('pp_tanggal_periksa', date("Y-m-d"));
$query = $this->db->get('proses_pengunjung');
return $query->result();
}
function ubahklinik(){
$update_pp = array(
'pp_klinik_id' => $this->input->post('klinik'),
'pp_pembayaran' => $this->input->post('pembayaran'),
'pp_loket' => null,
);
$this->db->where('pp_id', $this->input->post('idpengunjung'));
$this->db->update('proses_pengunjung', $update_pp);
$update_prt = array(
'prt_status' =>1,
);
$this->db->where('prt_id', $this->input->post('idprt'));
$this->db->update('proses_ruang_tunggu', $update_prt);
}
function kunjunganterlambat(){
$this->db->join('proses_pengunjung', 'pp_id = prt_pengunjung_id');
$this->db->join('master_klinik', 'mk_id = pp_klinik_id');
$this->db->where('pp_tanggal_periksa', date("Y-m-d"));
$this->db->where('prt_status', 0);
$this->db->where('prt_aktif', 1);
$query = $this->db->get('proses_ruang_tunggu');
return $query->result();
}
function proses_pengunjung(){
$idprt = $this->input->post('idprt_proses');
$idpp = $this->input->post('idpp_proses');
$idkl = $this->input->post('idklinik_proses');
$kodekl = $this->input->post('kodeklinik_proses');
$rm = $this->input->post('norm');
$fasttr = $this->input->post('data_fastrack');
$kode = 4;
$no_klinik="";
$i=0;
$hasil_nomor = "";
$this->db->order_by('pp_nomor_antrian_klinik', "asc");
$this->db->where('pp_klinik_id', $idkl);
$this->db->where('pp_tanggal_periksa', date("Y-m-d"));
$this->db->like('pp_nomor_antrian_klinik', 'KL'.$kodekl);
$query_pengunjung = $this->db->get('proses_pengunjung');
foreach ($query_pengunjung->result() as $datpengunjung){
if(isset($datpengunjung->pp_nomor_antrian_klinik)){
$no_klinik = $datpengunjung->pp_nomor_antrian_klinik;
}
}
if($fasttr!=null){$kode=5;}
if(isset($no_klinik)){
$urutan = (int) substr($no_klinik, 4, 3);
$urutan++;
$hasil_nomor = "KL".$kodekl.sprintf("%03s", $urutan);
}else {
$hasil_nomor="KL".$kodekl."001";
}
$this->db->where('pp_tanggal_periksa', date('Y-m-d'));
$this->db->where('pp_nomor_antrian_klinik', $hasil_nomor);
$query_cek_nomor = $this->db->get('proses_pengunjung');
if($query_cek_nomor->num_rows()!=0){
return FALSE;
}else{
$update_pp = array(
'pp_nomor_antrian_klinik' => $hasil_nomor,
'pp_rekamedik' => $rm,
);
$this->db->where('pp_id', $idpp);
$this->db->update('proses_pengunjung', $update_pp);
$update_rt = array(
'prt_status' => $kode,
);
$this->db->where('prt_id', $idprt);
$this->db->update('proses_ruang_tunggu', $update_rt);
}
}
function proses_panggil($idpp, $idloket){
$namaloket = "";
$this->db->where('ml_id', $idloket);
$query_loket = $this->db->get('master_loket');
foreach ($query_loket->result() as $datloket){
$namaloket = $datloket->ml_nama;
}
$update_pp = array(
'pp_panggil' => date("Y-m-d H:i:s"),
'pp_panggil_loket' => $namaloket,
);
$this->db->where('pp_id', $idpp);
$this->db->update('proses_pengunjung', $update_pp);
}
function proses_panggil_anjungan($idpp){
$update_pp = array(
'pp_panggil_anjungan' => date("Y-m-d H:i:s"),
);
$this->db->where('pp_id', $idpp);
$this->db->update('proses_pengunjung', $update_pp);
}
function proses_panggil_null($idpp){
$update_pp = array(
'pp_panggil' => null,
'pp_panggil_loket' => null,
//'pp_panggil_anjungan' => null,
);
$this->db->where('pp_id', $idpp);
$this->db->update('proses_pengunjung', $update_pp);
}
function proses_panggil_anjungan_null($idpp){
$update_pp = array(
'pp_panggil_anjungan' => null,
);
$this->db->where('pp_id', $idpp);
$this->db->update('proses_pengunjung', $update_pp);
}
function data_pengunjung($idpp){
$this->db->join('master_klinik', 'mk_id = pp_klinik_id');
$this->db->where('pp_id', $idpp);
$query = $this->db->get('proses_pengunjung');
return $query->result();
}
function proses_checkin($idprt, $idpp){
$update_pp = array(
'pp_tanggal_datang' => date("Y-m-d H:i:s"),
);
$this->db->where('pp_id', $idpp);
$this->db->update('proses_pengunjung', $update_pp);
}
}
?>