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/controllers/admin/Accommodation.php
<?php
defined('BASEPATH') or exit('No direct script access allowed');

class Accommodation extends MY_Controller
{

	public function __construct()
	{
		parent::__construct();
		$this->load->model('admin/maccommodation');
		$this->load->model('admin/mproperty');
		$this->load->model('admin/muser');
	}
	/**
	 * Index Page for this controller.
	 *
	 * Maps to the following URL
	 * 		http://example.com/index.php/welcome
	 *	- or -
	 * 		http://example.com/index.php/welcome/index
	 *	- or -
	 * Since this controller is set as the default controller in
	 * config/routes.php, it's displayed at http://example.com/
	 *
	 * So any other public methods not prefixed with an underscore will
	 * map to /index.php/welcome/<method_name>
	 * @see https://codeigniter.com/user_guide/general/urls.html
	 */
	public function index()
	{
		$data = array('menu_id'=> 13);
		if($this->admin_session_data['role_id'] == ROLE_SUPERADMIN){
			$data['accommodations'] = $this->maccommodation->get_accommodation_list();
		}else{
			$data['accommodations'] = array();
			if(check_user_permission($data['menu_id'], 'delete_flag')){
				$parent_properties = $this->mproperty->get_user_property_details($this->admin_session_data['user_id']);
				$parent_properties = !empty($parent_properties) ? array_column($parent_properties, 'property_id') : array();
				if(!empty($parent_properties)){
					$data['accommodations'] = $this->maccommodation->get_accommodation_list_property_id($parent_properties);
				}
			}
		}
		// echo '<pre>',print_r($data['accommodation']);die;
		$data['content'] = 'admin/accommodation/list';
		$this->load->view('admin/layouts/index', $data);
	}

	public function addaccommodation()
	{
		//echo $this->session_data['role_id'];
		$data = array();
		// $data['property_details'] = $this->maccommodation->get_property_details();
		$data['property_details'] = $this->admin_session_data['role_id'] == ROLE_SUPERADMIN ? $this->mproperty->get_property() : $this->mproperty->get_user_property_details($this->admin_session_data['user_id']);
		// echo '<pre>';print_r($data); die;
		$data['accomm_class'] = $this->maccommodation->get_accomm_class();
		$data['accomm_type'] = $this->maccommodation->get_accomm_type();
		$data['content'] = 'admin/accommodation/add';
		$data['slug'] = 'accommodation';
		$data['facilities'] = $this->maccommodation->get_property_facility(array('facility_master.status' => 1, 'facility_master.facility_type' => 'R'));
		// $data['facility_dropdown'] = $this->maccommodation->get_facilities();

		if (isset($_POST['submit'])) {
			$accommodation_name = $this->input->post('accommodation_name');
			$property_id = $this->input->post('property_id');
			$accomm_class_id = $this->input->post('accomm_class_id');
			$accomm_type_id = $this->input->post('accomm_type_id');
			$no_of_accomm = $this->input->post('no_of_accomm');
			$accommodation_information = $this->input->post('accommodation_information');
			$extra_bed = $this->input->post('extra_bed');
			$adult = $this->input->post('adult');
			$max_adult = $this->input->post('max_adult');
			$child = $this->input->post('child');
			$status = $this->input->post('is_active');
			$property_facilities = $this->input->post('property_facilities');
			$facilityIds = implode(',', $property_facilities);
			// $facilities = $this->mproperty->get_property_facility(array("facility_id IN($facilityIds)" => NULL));
			// $facilityNames = implode(' ', array_column($facilities, 'facility_name'));

			$img1_res = $img2_res = $img3_res = $img4_res = NULL;

			if (!empty($_FILES['image1']['name'])) {
				$img1_res = $this->uploadImages('image1');
			}
			if (!empty($_FILES['image2']['name'])) {
				$img2_res = $this->uploadImages('image2');
			}
			if (!empty($_FILES['image3']['name'])) {
				$img3_res = $this->uploadImages('image3');
			}
			if (!empty($_FILES['image4']['name'])) {
				$img4_res = $this->uploadImages('image4');
			}

			$data = array(
				'accommodation_name' => $accommodation_name,
				'property_id' => $property_id,
				'accomm_class_id' => $accomm_class_id,
				'accomm_type_id' => $accomm_type_id,
				'no_of_accomm' => $no_of_accomm,
				'accommodation_information' => $accommodation_information,
				'extra_bed' => $extra_bed,
				'adult' => $adult,
				'max_adult' => $max_adult,
				'child' => !empty($child) ? $child : 0,
				'is_active' => $status,
				'created_by' => $this->admin_session_data['user_id'],
				'created_ts' => date('Y-m-d H:i:s'),
				'image1' => !is_null($img1_res) && $img1_res['status'] ? $img1_res['img_path'] : NULL,
				'image2' => !is_null($img2_res) && $img2_res['status'] ? $img2_res['img_path'] : NULL,
				'image3' => !is_null($img3_res) && $img3_res['status'] ? $img3_res['img_path'] : NULL,
				'image4' => !is_null($img4_res) && $img4_res['status'] ? $img4_res['img_path'] : NULL,
				'facilities' => $facilityIds
			);
			// echo '<pre>';print_r($data);die;
			$result = $this->maccommodation->submit_accommodation($data);
			if ($result) {
				$this->session->set_flashdata('success_msg', 'Accommodation Details Added Successfully');
				redirect("admin/accommodation");
			}
		}

		$this->load->view('admin/layouts/index', $data);
	}

	public function editaccommodation($accommodation_id)
	{
		// $data['property_details'] = $this->maccommodation->get_property_details();
		$data['property_details'] = $this->admin_session_data['role_id'] == ROLE_SUPERADMIN ? $this->mproperty->get_property() : $this->mproperty->get_user_property_details($this->admin_session_data['user_id']);
		$data['accomm_class'] = $this->maccommodation->get_accomm_class();
		$data['accomm_type'] = $this->maccommodation->get_accomm_type();
		$data['facilities'] = $this->maccommodation->get_property_facility(array('facility_master.status' => 1, 'facility_master.facility_type' => 'R'));
		$data['accommodation'] = $this->maccommodation->edit_accommodation($accommodation_id);
		$data['content'] = 'admin/accommodation/edit';
		$data['slug'] = 'accommodation';
		$this->load->view('admin/layouts/index', $data);
	}

	public function updateaccommodation()
	{
		$accommodation_id = $this->input->post('accommodation_id');
		$accommodation_name = $this->input->post('accommodation_name');
		$property_id = $this->input->post('property_id');
		$accomm_class_id = $this->input->post('accomm_class_id');
		$accomm_type_id = $this->input->post('accomm_type_id');
		$no_of_accomm = $this->input->post('no_of_accomm');
		$accommodation_information = $this->input->post('accommodation_information');
		$extra_bed = $this->input->post('extra_bed');
		$adult = $this->input->post('adult');
		$max_adult = $this->input->post('max_adult');
		$child = $this->input->post('child');
		$status = $this->input->post('is_active');
		$property_facilities = $this->input->post('property_facilities');
		$facilityIds = implode(',', $property_facilities);
		// $facilities = $this->mproperty->get_property_facility(array("facility_id IN($facilityIds)" => NULL));
		// $facilityNames = implode(' ', array_column($facilities, 'facility_name'));

		$data = array(
			'accommodation_name' => $accommodation_name,
			'property_id' => $property_id,
			'accomm_class_id' => $accomm_class_id,
			'accomm_type_id' => $accomm_type_id,
			'no_of_accomm' => $no_of_accomm,
			'accommodation_information' => $accommodation_information,
			'extra_bed' => $extra_bed,
			'adult' => $adult,
			'max_adult' => $max_adult,
			'child' => !empty($child) ? $child : 0,
			'is_active' => $status,
			'updated_by' => $this->admin_session_data['user_id'],
			'updated_ts' => date('Y-m-d H:i:s'),
			'facilities' => $facilityIds
		);

		$img1_res = $img2_res = $img3_res = $img4_res = NULL;

		if (!empty($_FILES['image1']['name'])) {
			$img1_res = $this->uploadImages('image1');
			if (!is_null($img1_res) && $img1_res['status'] && isset($img1_res['img_path']))
				$data['image1'] = $img1_res['img_path'];
		}
		if (!empty($_FILES['image2']['name'])) {
			$img2_res = $this->uploadImages('image2');
			if (!is_null($img2_res) && $img2_res['status'] && isset($img2_res['img_path']))
				$data['image2'] = $img2_res['img_path'];
		}
		if (!empty($_FILES['image3']['name'])) {
			$img3_res = $this->uploadImages('image3');
			if (!is_null($img3_res) && $img3_res['status'] && isset($img3_res['img_path']))
				$data['image3'] = $img3_res['img_path'];
		}
		if (!empty($_FILES['image4']['name'])) {
			$img4_res = $this->uploadImages('image4');
			if (!is_null($img4_res) && $img4_res['status'] && isset($img4_res['img_path']))
				$data['image4'] = $img4_res['img_path'];
		}
		$condition = array('accommodation_id' => $accommodation_id);
		// echo '<pre>';print_r($data);die;
		$result = $this->maccommodation->update_accommodation($condition,$data);
		if ($result) {
			$this->session->set_flashdata('success_msg', 'Accommodation Details Updated Successfully');
			redirect("admin/accommodation");
		}
	}

	function uploadImages($fieldName)
	{

		$dir = 'room_images';

		$config['upload_path']          = './public/admin_images/' . $dir;
		$config['allowed_types']        = 'jpg|jpeg|png';
		$config['max_size']             = 5000;
		$config['encrypt_name'] = TRUE;
		//$config['max_width']            = 1024;
		//$config['max_height']           = 768;

		$this->load->library('upload', $config);

		$img_ret = array();

		if ($this->upload->do_upload($fieldName)) {
			$upload_data = $this->upload->data();
			$image_path = $dir . '/' . $upload_data['file_name'];

			$img_ret = array('status' => true, 'img_path' => $image_path);
		} else {
			$img_ret = array('status' => false, 'error' => $this->upload->display_errors());
		}

		return $img_ret;
	}

	public function getAccommodationByProperty()
	{
		$data_list = $this->maccommodation->get_accommodation_list_property_id($this->input->get('property_id'));
		$response = array("status"=> true, "list"=>$data_list);
		echo json_encode($response);
		exit;
	}

}