HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //var/www/html/qcr24/app/application/models/admin/Mreservation.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Mreservation extends CI_Model {

    public function __construct() {
        parent::__construct();

    }

    public function get_reservations(){
        $sql = "SELECT sfb.*,sf.sports_facilities_name,oc.category_name,ml.location_name,mf.fieldunit_name
        FROM sports_facilities_booking sfb
        INNER JOIN sports_facilities sf ON sf.sports_facilities_id = sfb.sports_facilities_id
        INNER JOIN master_location ml ON ml.location_id = sf.location_id
        INNER JOIN master_fieldunit mf ON mf.fieldunit_id = ml.fieldunit_id
        INNER JOIN organization_category oc ON oc.organization_category_id = sfb.organization_type
        INNER JOIN users u ON u.user_id = sfb.user_id
        order by sfb.booking_id DESC"; 
        $query = $this->db->query($sql);
        return $query->result_array();
    }

    public function get_reservation_details($booking_id){
        $sql = "SELECT sfb.*,
        ifnull(ma.full_name,'') as discount_given_by,date_format(discount_given_ts,'%d-%m-%Y %H:%i:%s') as discount_given_ts,
        ifnull(ma1.full_name,'') as approved_by,date_format(approved_ts,'%d-%m-%Y %H:%i:%s') as approved_ts,date_format(approval_valid_till,'%d-%m-%Y %H:%i:%s') as approval_valid_till,
        ifnull(ma2.full_name,'') as rejected_by,date_format(rejected_ts,'%d-%m-%Y %H:%i:%s') as rejected_ts,
        sf.sports_facilities_name,oc.category_name,ml.location_name,mf.fieldunit_name,u.mobile,(SELECT IF(MIN(DATE(sfbd.start_date)) < CURDATE(),1,0) FROM sports_facilities_booking_details sfbd WHERE sfbd.booking_id = sfb.booking_id) as is_event_started
        FROM sports_facilities_booking sfb
        INNER JOIN sports_facilities sf ON sf.sports_facilities_id = sfb.sports_facilities_id
        INNER JOIN master_location ml ON ml.location_id = sf.location_id
        INNER JOIN master_fieldunit mf ON mf.fieldunit_id = ml.fieldunit_id
        INNER JOIN organization_category oc ON oc.organization_category_id = sfb.organization_type
        INNER JOIN users u ON u.user_id = sfb.user_id
        LEFT JOIN master_admin ma ON ma.user_id = sfb.discount_given_by
        LEFT JOIN master_admin ma1 ON ma1.user_id = sfb.approved_by
        LEFT JOIN master_admin ma2 ON ma2.user_id = sfb.rejected_by
        WHERE sfb.booking_id = '".$booking_id."'"; 
        $query = $this->db->query($sql);
        return $query->row_array();
    }

    public function check_not_responded_booking(){
        $sql = "SELECT sfb.booking_id,sfbd.start_date,IF(MIN(DATE(sfbd.start_date)) < CURDATE(),1,0) as is_event_started,sfb.status 
        FROM sports_facilities_booking_details sfbd  
        INNER JOIN sports_facilities_booking sfb ON sfb.booking_id = sfbd.booking_id
        WHERE sfb.status NOT IN ('3','4','5')
        GROUP BY sfbd.booking_id HAVING is_event_started = 1"; 
        $query = $this->db->query($sql);
        return $query->result_array();
    }

    

    public function get_reservation_booking_details($request_data = array()){  
        $sql = "SELECT bh.*,pm.property_name  
        
        FROM booking_header bh
        INNER JOIN property_master pm ON pm.property_id = bh.property_id";
        
        //INNER JOIN booking_detail bd ON bd.booking_id=bh.booking_id WHERE bh.booking_id > 0";
        if(!empty($request_data['property_id'])){
            $sql .=" AND pm.property_id IN('".$request_data['property_id']."')";
        }
        if(!empty($request_data['booking_status'])){
            $sql .=" AND bh.booking_status ='".$request_data['booking_status']."'";
        }
        
        $query = $this->db->query($sql);
        return $query->result_array();
    }

    public function get_properties(){
        $sql = "SELECT *
        FROM property_master
        WHERE is_active = 1"; 
        $query = $this->db->query($sql);
        return $query->result_array();

    }
    

    public function get_sports_facilities_booking_details($booking_id){ 
        $sql = "SELECT *
        FROM sports_facilities_booking_details
        WHERE booking_id = '".$booking_id."'"; 
        $query = $this->db->query($sql);
        return $query->result_array();
    }

    

    public function submit_fieldunit($data){
        $this->db->insert('master_fieldunit', $data);
        return $this->db->insert_id();
    }

    public function edit_fieldunit($fieldunit_id){
        $this->db->select('fieldunit_id,fieldunit_name,status');
        $this->db->from('master_fieldunit');
		$this->db->where('fieldunit_id',$fieldunit_id);
        $query=$this->db->get();
        return $query->row_array();
    }

    public function update_reservation($data,$condition){
        $result=$this->db->update('sports_facilities_booking', $data, $condition);
        return $result;
    }

    public function delete_fieldunit($condition,$data){
        $result=$this->db->update('master_fieldunit', $data, $condition);
        return $result;
    }

    public function get($where = array(),$order_by = ''){ 
        $sql = $this->db->select('bh.*, CONCAT(ifnull(bh.customer_title,""), " ", ifnull(bh.first_name,""), " ", ifnull(bh.middle_name,""), " ", bh.last_name) customer_name, pm.property_name')
                                ->from('booking_header bh')
                                ->join('property_master pm', 'pm.property_id=bh.property_id');
        if(!empty($where)){
            $this->db->where($where);
        }
        if(!empty($order_by)){
            $this->db->order_by($order_by,null);
        }

        return $result = $sql->get()->result();
    }

    public function get_booking_details($booking_id){

        $result = array();

        $sql = "SELECT a.*, b.property_name, b.property_type_id, c.property_type_name, c.is_hall FROM booking_header a LEFT JOIN property_master b ON a.property_id = b.property_id LEFT JOIN property_types c ON b.property_type_id = c.id WHERE a.booking_id = ".$booking_id."";
        $query = $this->db->query($sql);
        $row = $query->row_array();

        $sql1 = "SELECT a.*, b.accommodation_name FROM booking_detail a LEFT JOIN accommodation b ON a.accommodation_id = b.accommodation_id WHERE a.booking_id = ".$booking_id."";
        $query1 = $this->db->query($sql1);
        $rows = $query1->result_array();
        
        $result = $row;
        $result['b_details'] = $rows;

        //echo "<pre>"; print_r($result); die;

        return $result;
        
    }

    public function get_booking_details_cdetails($booking_id){

        $result = array();

        $sql = "SELECT a.*, b.property_name, b.property_type_id, c.property_type_name, c.is_hall FROM booking_header a LEFT JOIN property_master b ON a.property_id = b.property_id LEFT JOIN property_types c ON b.property_type_id = c.id WHERE a.booking_id = ".$booking_id."";
        $query = $this->db->query($sql);
        $row = $query->row_array();

        $sql1 = "SELECT a.*, b.accommodation_name, c.room_no FROM booking_detail a LEFT JOIN accommodation b ON a.accommodation_id = b.accommodation_id LEFT JOIN check_in_detail c ON a.booking_detail_id = c.booking_detail_id WHERE a.booking_id = ".$booking_id."";
        $query1 = $this->db->query($sql1);
        $rows = $query1->result_array();
        
        $result = $row;
        $result['b_details'] = $rows;

        //echo "<pre>"; print_r($result); die;

        return $result;
        
    }

    public function get_booking_headers($booking_id){

        $sql = "SELECT * FROM booking_header WHERE booking_id = ".$booking_id."";
        $query = $this->db->query($sql);
        $row = $query->row_array();

        //echo "<pre>"; print_r($result); die;

        return $row;
        
    }

    public function get_bookingdetails($bd_id){

        $sql = "SELECT * FROM booking_detail WHERE booking_detail_id = ".$bd_id."";
        $query = $this->db->query($sql);
        $row = $query->row_array();

        //echo "<pre>"; print_r($result); die;

        return $row;
        
    }

    public function check_checkin($booking_id){

        $sql = "SELECT * FROM check_in_header WHERE booking_id = ".$booking_id."";
        $query = $this->db->query($sql);
        $num = $query->num_rows();

        if($num > 0){
            return true;
        } else {
            return false;
        }

    }

    public function insert_checkin_headers($data_header){

        $sql = "INSERT INTO check_in_header (booking_id, property_id, room_count, customer_id, check_in, check_out, room_base_price, room_total_discount, room_price_before_tax, room_total_cgst, room_total_sgst, room_total_igst, room_payable_amount, net_payable_amount, created_by, created_ts, updated_by) VALUES ('".$data_header['booking_id']."', '".$data_header['property_id']."', '".$data_header['room_count']."', '".$data_header['customer_id']."', '".$data_header['check_in']."', '".$data_header['check_out']."', '".$data_header['room_base_price']."', '".$data_header['room_total_discount']."', '".$data_header['room_price_before_tax']."', '".$data_header['room_total_cgst']."', '".$data_header['room_total_sgst']."', '".$data_header['room_total_igst']."', '".$data_header['room_payable_amount']."', '".$data_header['net_payable_amount']."', '".$data_header['created_by']."', '".$data_header['created_ts']."', '".$data_header['updated_by']."')";
        $query = $this->db->query($sql);
        $insert_id = $this->db->insert_id();	
        
        if($query){
            //$usql = "UPDATE booking_header SET booking_status = 'A' WHERE booking_id = ".$data_header['booking_id']."";
            //$uquery = $this->db->query($usql);

            $usql1 = "UPDATE booking_detail SET allotment_status = 'I' WHERE booking_id = ".$data_header['booking_id']."";
            $uquery1 = $this->db->query($usql1);

            return $insert_id;
        }
        
    }

    public function insert_checkin_details($data_details, $is_hall, $booking_id){

        $sql = $this->db->insert_batch('check_in_detail', $data_details);

        if($sql){
            if($is_hall == 1){

                $usql3 = "UPDATE booking_header SET checked_in = 1 WHERE booking_id = ".$booking_id."";
                $uquery3 = $this->db->query($usql3);

                return true;

            } else {
                return true;
            }
            
        }

    }

    public function guest_booking_details($booking_id){

        $sql = "SELECT a.*, b.accommodation_name, c.room_no, c.check_in_detail_id, (SELECT SUM(adults+children+infants) FROM check_in_detail WHERE booking_detail_id = a.booking_detail_id) as total_guest FROM booking_detail a LEFT JOIN accommodation b ON a.accommodation_id = b.accommodation_id LEFT JOIN check_in_detail c ON a.booking_detail_id = c.booking_detail_id WHERE a.booking_id = ".$booking_id."";
        $query = $this->db->query($sql);
        $rows = $query->result_array();

        //echo "<pre>"; print_r($rows); die;

        return $rows;
        
    }

    public function insert_guest_details($data_details, $booking_id){

        $sql = $this->db->insert_batch('check_in_guest', $data_details);

        if($sql){

            $usql3 = "UPDATE booking_header SET checked_in = 1 WHERE booking_id = ".$booking_id."";
            $uquery3 = $this->db->query($usql3);

            return true;
        }

    }

    public function checkout_submit($data){

        $usql = "UPDATE check_in_detail SET allotment_status = 'O', actual_checkout_time = '".$data['actual_checkout_time']."' WHERE booking_detail_id = ".$data['booking_details_id']."";
        $uquery = $this->db->query($usql);

        if($uquery){

            $usql1 = "UPDATE booking_detail SET allotment_status = 'O' WHERE booking_detail_id = ".$data['booking_details_id']."";
            $uquery1 = $this->db->query($usql1);

            if($uquery1){

                $csql = "SELECT * FROM booking_detail WHERE booking_id = ".$data['booking_id']." AND allotment_status = 'I'";
                $cquery = $this->db->query($csql);
                $num = $cquery->num_rows(); 

                if($num > 0){
                    return true;
                } else {

                    $usql3 = "UPDATE booking_header SET booking_status = 'O' WHERE booking_id = ".$data['booking_id']."";
                    $uquery3 = $this->db->query($usql3);

                    return true;

                }

            }

        }
        
    }

    public function checkin_guest_details($booking_details_id){

        $result = array();
        
        $sql = "SELECT a.*, b.accommodation_name, c.room_no, c.check_in_detail_id FROM booking_detail a LEFT JOIN accommodation b ON a.accommodation_id = b.accommodation_id LEFT JOIN check_in_detail c ON a.booking_detail_id = c.booking_detail_id WHERE a.booking_detail_id = ".$booking_details_id."";
        $query = $this->db->query($sql);
        $row = $query->row_array();

        $sql1 = "SELECT * FROM check_in_guest WHERE check_in_detail_id = ".$row['check_in_detail_id']."";
        $query1 = $this->db->query($sql1);
        $rows = $query1->result_array();

        $result = $row;
        $result['guest_details'] = $rows;

        //echo "<pre>"; print_r($result); die;

        return $result;
        
    }

	function checkin_checkout_details($condn = null) {
		$this->db->select('check_in_header.*, check_in_detail.*, booking_header.*, property_master.*');
		$this->db->from('check_in_header');
		$this->db->join('check_in_detail', 'check_in_header.check_in_id = check_in_detail.check_in_id', 'LEFT');
		//$this->db->join('booking_detail', 'check_in_detail.booking_detail_id = booking_detail.booking_detail_id', 'LEFT');
		$this->db->join('booking_header', 'check_in_header.booking_id = booking_header.booking_id', 'LEFT');
		$this->db->join('property_master', 'booking_header.property_id = property_master.property_id', 'LEFT');
		if (!is_null($condn))
			foreach ($condn as $key => $value)
				$this->db->where($key, $value);
		$result = $this->db->get();
		return $result->result();
	}
}