MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/allyindian_com/backend/application/controllers/Package_ticket.php
<?php if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Secure_Controller.php");
class Package_ticket  extends Secure_Controller
{ 
	public function __construct(){
		parent::__construct('package_ticket');
		$this->load->model('Package_ticket_model');
		$this->load->model('Email_model');
		$this->load->model('Sms_model');
	}
	public function index(){
		if(!$this->Appconfig->isAppvalid()){
			redirect('config');
		}
		$data['table_headers']="";

		$pack_data=$this->Package_ticket_model->get_packages();
		$pack_info[""] = "--- Select Package ---";
		foreach($pack_data as $row){
		    $pack_info[$this->xss_clean($row['package_id'])] = $this->xss_clean($row['package_title']."-".$row['package_title2']);
		}
		$data['package_info']=$pack_info; 

		$this->load->view('package_ticket/manage',$data);
	}		
	public function get_package_data(){
		$package = $this->input->post('package');
		$result  = $this->Package_ticket_model->get_package_data($package);
		$tr_line = "";
		$i = 1;
		foreach ($result as $rslt){
			$date      = $rslt['date_info'];
			$p_date    = date("Y-m-d",strtotime($rslt['date_info']));
			$today     = date("Y-m-d");
			$pack_info = $rslt['pack_info'];
			foreach ($pack_info as $pack){				
				$tripid        = $pack['tripid'];
				$tripcode      = $pack['tripcode'];
				$seat_capacity = $pack['seat_capacity'];
				$package_id    = $pack['trippackid'];
				$booked        = $this->Package_ticket_model->get_booked_count($package_id,$date,$tripid);
				$cancelled     = $this->Package_ticket_model->get_cancelled_count($package_id,$date,$tripid);
				$blocked       = $this->Package_ticket_model->get_blocked_count($package_id,$date,$tripid);
				$total         = $booked + $blocked;
				$available     = $seat_capacity - $total;
				$url           = site_url('package_ticket');
				$style         = "style='padding: 3px 8px;margin-right: 4px;width: 20%;'";
				$btn_style = "style='text-align:center;'";
				$span_style = "";
				if($p_date > $today){
					$btn = "<span><a href='$url/availability/$package_id/$date/$tripid' $style type='button' class='btn btn-success btn-sm'>Availability</a></span><span><a href='$url/block_seats/$package_id/$date/$tripid' $style type='button' class='btn btn-danger btn-sm'>Block Seats</a></span><span><a href='$url/search_customer/$package_id/$date/$tripid' $style type='button' class='btn btn-info btn-sm'>Book Seats</a></span>";
				}else{
					$btn = "<span><button style='background-color: #3E3E3E;border: 1px solid #3E3E3E;padding: 3px 8px;margin-right: 4px;'' type='button' class='btn btn-warning btn-sm' onclick=feedback('$package_id','$p_date','$tripid')><i class='fa fa-comments' aria-hidden='true'></i> Feedback</button></span>";
					$btn_style = "style='text-align:right;'";
					$span_style = "style = 'margin-right: 25px;'";
				}
				$tr_line .= "<tr>
								<td style='text-align:center;'>$i</td>	
								<td style='text-align:center;'>$tripcode</td>
								<td style='text-align:center;'>$date</td>
								<td style='text-align:center;'>$seat_capacity</td>
								<td style='text-align:center;cursor: pointer;' onclick=get_ticket_info($package_id,'$p_date',$tripid,'booked')>$booked</td>
								<td style='text-align:center;'>$blocked</td>
								<td style='text-align:center;cursor: pointer;' onclick=get_ticket_info($package_id,'$p_date',$tripid,'cancelled')>$cancelled</td>
								<td style='text-align:center;'>$available</td>
								<td $btn_style>$btn<span><button $style type='button' onclick=send_campaign($package_id,'$p_date',$tripid) class='btn btn-warning btn-sm'><i class='fa fa-paper-plane-o' aria-hidden='true'></i>Send Sms</button></span><span $span_style><a href='$url/view_passengers/$package_id/$date/$tripid' type='button' class='btn btn-default btn-sm'><i class='fa fa-pencil-square-o' aria-hidden='true'></a></i></span></td>
							</tr>";	
				$i++;			
			}
		}
		echo json_encode(array('success' => TRUE, 'package_data' => $tr_line));
	}	
	public function block_seats($package_id,$date,$tripid){	
		$data['vehicle_data']  = $this->Package_ticket_model->get_vehicle_data($package_id,$tripid);
		$data['package_date']  = $date;
		$data['trip_id']       = $tripid;
		$data['blocked_data']  = $this->Package_ticket_model->get_block_seatdata($package_id,$date,$tripid);
		$this->load->view("package_ticket/block_seats",$data);
	}
	public function availability($package_id,$date,$tripid){
		$data['vehicle_data']  = $this->Package_ticket_model->get_vehicle_data($package_id,$tripid);
		$data['package_date']  = $date;
		$data['trip_id']       = $tripid;
		$this->load->view("package_ticket/view_seat_layout",$data);
	}
	public function view_passengers($package_id,$date,$tripid){	
		$data['table_headers']="";
		$this->load->view("package_ticket/view_passengers",$data);
	}
	public function search_customer($package_id,$date,$tripid){	
		$data['package_id']    = $package_id;
		$data['package_date']  = $date;
		$data['trip_id']       = $tripid;
		$data['blocked_data']  = $this->Package_ticket_model->get_block_seatdata($package_id,$date);
		$this->load->view("package_ticket/search_customer",$data);
	}
	public function book_ticket($cust_id,$package_id,$date,$tripid,$custmobile){
		$this->session->set_userdata('custmobile', $custmobile);	
		$data['vehicle_data']  = $this->Package_ticket_model->get_vehicle_data($package_id,$tripid);
		$bp_info[""] = "--- Select Boarding Point ---";
		$boarding_data = $this->Package_ticket_model->get_boarding($package_id,$tripid);
		foreach($boarding_data as $row){
		    $bp_info[$this->xss_clean($row['boarding_id'])] = $row['dep_time']."-".$row['boarding_name'];
		}
		$data['bp_info'] = $bp_info;

		$bank_info[""] = "--- Select Bank ---";
		$bank_data = $this->Package_ticket_model->get_banks();
		foreach($bank_data as $row){
		    $bank_info[$this->xss_clean($row['bank_name'])] = $row['bank_name'];
		}
		$data['bank_info'] = $bank_info;
		$tariff_info[""] = "--- Select Tariff Type ---";
		$boarding_data = $this->Package_ticket_model->get_tariff($package_id,$tripid);
		foreach($boarding_data as $row){
		    $tariff_info[$this->xss_clean($row['pcostid'])."|".$this->xss_clean($row['pamount'])] = $this->xss_clean($row['package_type'])."-".$this->xss_clean($row['pamount']);
		}
		$data['tariff_info']   = $tariff_info;
		$data['package_date']  = $date;
		$data['trip_id']       = $tripid;
		$data['cust_id']       = $cust_id;
		$data['blocked_data']  = $this->Package_ticket_model->get_block_seatdata($package_id,$date);
		$this->load->view("package_ticket/book_ticket",$data);
	}
	public function save_booked_seat_temp(){
		$cust_id      = $this->input->post('cust_id');	
		$package_date = $this->input->post('package_date');
		$package_id   = $this->input->post('package_id');
		$trip_id      = $this->input->post('trip_id');
		$status       = $this->input->post('status');
		$seat_no      = $this->input->post('seat_no');
		$seat_data    = $this->Package_ticket_model->save_booked_seat_temp($cust_id,$package_id,$seat_no,$status,$package_date,$seat_data,$trip_id);
		if($seat_data){
			echo json_encode(array('success' => true, 'seat_data'=>$seat_data));
		}else{
			echo json_encode(array('success' => false, 'seat_data'=>$seat_data));
		}
	}	
	public function get_customer_data(){
		$search_by   = $this->input->post('search_by');	
		$search_text = $this->input->post('search_text');
		$cust_data  = $this->Package_ticket_model->get_customer_data($search_by,$search_text);		
		echo json_encode(array('success' => true, 'cust_data'=>$cust_data));
	}
	public function get_seat_data(){
		$vehicle_id   = $this->input->post('vehicle_id');	
		$package_date = $this->input->post('package_date');
		$package_id   = $this->input->post('package_id');
		$trip_id      = $this->input->post('trip_id');
		
		$seat_data  = $this->Package_ticket_model->get_vehicle_seat_data($vehicle_id,$package_date,$package_id,$trip_id);
		echo json_encode(array('success' => true, 'seat_data'=>$seat_data));
	}
	public function save_blocked_seat(){
		$package_id   = $this->input->post('package_id');	
		$seat_no      = $this->input->post('seat_no');	
		$status       = $this->input->post('status');	
		$package_date = $this->input->post('package_date');	
		$trip_id      = $this->input->post('trip_id');	
		$seat_data    = $this->Package_ticket_model->save_blocked_seat($package_id,$seat_no,$status,$package_date,$seat_data,$trip_id);	
		if($seat_data){
			echo json_encode(array('success' => true, 'seat_data'=> $seat_data));
		}else{
			echo json_encode(array('success' => false, 'seat_data'=> $seat_data));
		}
	}
	public function update_blocked_seat(){
		$id                = $this->input->post('id');
		$blocked_remarks   = $this->input->post('blocked_remarks');
		$status            = $this->input->post('status');
		$package_id        = $this->input->post('package_id');
		$package_date      = $this->input->post('package_date');	
		$trip_id           = $this->input->post('trip_id');	
		$seat_data         = $this->Package_ticket_model->update_blocked_seat($id,$blocked_remarks,$status,$package_id,$package_date,$trip_id);
		if($seat_data){
			echo json_encode(array('success' => true, 'seat_data'=>$seat_data));
		}else{
			echo json_encode(array('success' => false, 'seat_data'=>$seat_data));
		}
	}
	public function save_order(){	
	$seat_nos       = $this->input->post('seat_nos');	
	$pack_disc      = $this->input->post('pack_disc');	
	$admin_disc     = $this->input->post('admin_disc');	
	$custid         = $this->input->post('cust_id');	
	$admin_discount = $this->input->post('pass_discount');
		$order_data = array(
			'orderdate'      => date('Y-m-d h:i:s'),
			'packid'         => $this->input->post('package_id'),
			'doj'            => date("Y-m-d", strtotime($this->input->post('package_date'))),
			'custid'         => $this->input->post('cust_id'),
			'nopass'         => count($this->input->post('seat_nos')),
			'tariffamt'      => $this->input->post('tariff'),
			'ticketamt'      => $this->input->post('total_tariff'),
			'orderstat'      => 2,
			'discountamt'    => $this->input->post('discount'),
			'finalamt'       => $this->input->post('total_amt'),
			'paidamt'        => $this->input->post('paid'),
			'balamt'         => $this->input->post('bal'),
			'trans_charge'   => $this->input->post('additional'),
			'tot_charges'    => $this->input->post('charges'),
			'boarding'       => $this->input->post('boarding'),
			'otripid'        => $this->input->post('trip_id'),
			'paytype'        => $this->input->post('paid_by'),
			'bank'           => $this->input->post('bank'),
			'chno'           => $this->input->post('no'),
			'chdate'         => $this->input->post('date'),			
			'bookedby'       => $this->session->userdata('emp_id'));

		$pass_data = array(
		    'pass_name'      => $this->input->post('pass_name'),
			'pass_mobile'    => $this->input->post('pass_mobile'),
			'pass_gender'    => $this->input->post('pass_gender'),
			'pass_discount'  => $this->input->post('pass_discount'),
			'pass_age'       => $this->input->post('pass_age'));	
		$order_id = $this->Package_ticket_model->save_order($order_data,$seat_nos,$pass_data,$pack_disc,$admin_disc,$admin_discount);
		if($order_id){
			echo json_encode(array('success' => TRUE,'order_id'=>$order_id,'message' => 'Success'));
			$cust_data = $this->Package_ticket_model->get_custmobile($custid);
			$this->Sms_model->send_sms($order_id,$cust_data->custmobile,"booked");
		}else{
			echo json_encode(array('success' => FALSE,'message' => 'Please Try After Sometime...'));
		}
	}
	public function clear_temp_data($cust_id){
		$cust_id      = $this->input->post('cust_id');
		$data    = $this->Package_ticket_model->clear_temp_data($cust_id);
		if($data){
			echo json_encode(array('success' => true, 'message'=>'success'));
		}
	}
	public function get_customer_numbers(){
		$package_id        = $this->input->post('package_id');
		$package_date      = $this->input->post('date');	
		$trip_id           = $this->input->post('tripid');
		$number_data    = $this->Package_ticket_model->get_numbers($package_id,$package_date,$trip_id);
		if($number_data){
			echo json_encode(array('success' => true, 'number_data'=>$number_data));
		}
	}
	public function send_sms_campaign(){
		$numbers  = $this->input->post('numbers');
		$smstext  = $this->input->post('smstext');
		$sms_url  = $this->Appconfig->get('sms_url');
		$sms_id   = $this->Appconfig->get('sms_id');
		$sms_pwd  = $this->Appconfig->get('sms_pwd');
		
		$url = $sms_url."workingkey=$sms_pwd&sender=".urlencode($sms_id)."&to=".urlencode($numbers)."&message=".urlencode($smstext);
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
		curl_exec($ch);
		curl_close($ch);
		if($ch){
			echo json_encode(array('success' => true, 'message'=>"SMS Sent Successfully"));
		}else{
			echo json_encode(array('success' => false, 'message'=>"SMS Sent Successfully"));
		}		
	}

	//Passengers Edit
	public function view_passengers_data(){
		$search_by   = $this->input->post('search_by');
		$search_text = $this->input->post('search_text');
		$result      = $this->Package_ticket_model->view_passengers_data($search_by,$search_text);
		$tr_line = "";
		$i = 1;
		foreach ($result as $rslt){	
			$passid    = $rslt['passid'];
			$orderid   = $rslt['ticketorderid'];
			$pack_id   = $rslt['packid'];
			$seatno    = $rslt['seatno'];
			$passname  = $rslt['passname'];
			$gender    = $rslt['passgender'];
			$passage   = $rslt['passage'];
			$mobile    = $rslt['passmobile'];
			$boarding  = $rslt['boarding'];		
			$replace_pass = str_replace(' ', '_', $passname);
			$url       = site_url('Package_ticket');
			$style     = "style='padding: 3px 8px;margin-right: 4px;'";
			
			$tr_line .= "<tr>
							<td style='text-align:center;'>$i</td>	
							<td style='text-align:center;'>$seatno</td>
							<td style='text-align:center;'>$passname</td>
							<td style='text-align:center;'>$gender</td>
							<td style='text-align:center;'>$passage</td>
							<td style='text-align:center;'>$mobile</td>	
							<td style='text-align:center;'><button $style class='btn btn-default btn-sm' onclick=edit_passenger($passid,'$replace_pass','$gender','$passage','$mobile','$pack_id','$boarding','$orderid')><i class='fa fa-pencil-square-o' aria-hidden='true'></i></button></td>
						</tr>";	
			$i++;	
		}
		 echo "<table id='detail_list' class='table table-hover table-striped col-style'>
               <thead>
                <tr style='font-weight:bold;text-align:center !important;background:#d84f57;'>
                  <th style='text-align:center !important;'>SNo</th>
                  <th style='text-align:center !important;'>Seat No</th>
                  <th style='text-align:center !important;'>Passenger Name</th>
                  <th style='text-align:center !important;'>Age</th> 
                  <th style='text-align:center !important;'>Gender</th>
                  <th style='text-align:center !important;'>Mobile</th>
                  <th style='text-align:center !important;'>Operations</th>
                </tr>       
              </thead>
              <tbody id='package_data'>
              $tr_line
              </tbody>
            </table>";
	}
	public function get_boarding_data(){
		$packid       = $this->input->post('packid');
		$boarding     = $this->input->post('boarding');
		$boarding_data  = $this->Package_ticket_model->get_boarding($packid,$boarding);			
			$option = "<option value =''>--- Select Boarding ---</option>";
			$opt = "";
			foreach ($boarding_data as $board){	
				$board_id   = $board['boarding_id'];
				$board_name = $board['boarding_name'];
				$dep_time   = $board['dep_time'];
				if($boarding === $board_id){
					$opt = "selected";
				}else{
					$opt = "";
				}
			$option .= "<option value ='$board_id' $opt>$dep_time - $board_name</option>";
			}			
			echo json_encode(array('success' => true, 'option'=>$option));
	}
	public function update_passenger(){
		$passid       = $this->input->post('passid');
		$boarding     = $this->input->post('boarding');
		$orderid      = $this->input->post('orderid');
		$pass_data = array(
		    'passname'      => $this->input->post('pass_name'),
			'passmobile'    => $this->input->post('pass_mobile'),
			'passgender'    => $this->input->post('pass_gender'),
			'passage'       => $this->input->post('pass_age'));
		$data    = $this->Package_ticket_model->update_passenger($passid,$pass_data,$boarding,$orderid);
		if($data){
			echo json_encode(array('success' => true, 'message'=>'Successfully Updated'));
		}else{
			echo json_encode(array('success' => false, 'message'=>'Failed'));
		}
	}
	public function save_irumudi(){
		$custid       = $this->input->post('custid');
		$trip_date    = $this->input->post('trip_date');
		$packid       = $this->input->post('packid');
		$passtripid   = $this->input->post('passtripid');
		$orderid      = $this->input->post('orderid');
		$pass_data = array(
		    'pass_name'      => $this->input->post('pass_name'),
			'pass_mobile'    => $this->input->post('pass_mobile'),
			'pass_gender'    => $this->input->post('pass_gender'),
			'pass_age'       => $this->input->post('pass_age'),
			'irumudi_amount' => $this->input->post('irumudi_amount'),			 
			'order_id'       => $orderid,
			'trip_id'        => $passtripid,
			'cust_id'        => $custid,
			'dep_date'       => $trip_date,
			'package_id'     => $packid,
			'created_by'     => $this->session->userdata('emp_id'),
			'created_date'   => date('Y-m-d h:i:s')
		);

		$pass_result = $this->Package_ticket_model->save_irumudi($pass_data,$packid,$custid,$passtripid,$orderid);
		if($pass_result){
			echo json_encode(array('success' => true, 'pass_result'=> $pass_result));
		}else{
			echo json_encode(array('success' => false, 'pass_result'=>$pass_result));
		}
	}
	public function get_irumudi_data(){
		$custid       = $this->input->post('custid');
		$trip_date    = $this->input->post('trip_date');
		$packid       = $this->input->post('packid');
		$passtripid   = $this->input->post('passtripid');
		$orderid      = $this->input->post('orderid');
		$pass_result = $this->Package_ticket_model->get_irumudi_data($packid,$custid,$passtripid,$orderid);
		if($pass_result){
			echo json_encode(array('success' => true, 'pass_result'=> $pass_result));
		}else{
			echo json_encode(array('success' => false, 'pass_result'=>$pass_result));
		}
	}
	
}
?>