0xV3NOMx
Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64



Your IP : 18.218.250.241


Current Path : /var/www/html/sdu/src/
Upload File :
Current File : /var/www/html/sdu/src/room_allotmentold.php

<?php
class room_allotment 
{
    
		function __construct($aobj_context)
		{
			session_start();
			$this->aobj_context=$aobj_context;
			$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
			$this->user_id=$_SESSION['user_id']	;		  
			$this->collcode=$_SESSION['collcode'];	
			$this->log_name = $_SESSION['usr'];			
		}
	 
		function DisplayRoomAllotmentDetatils()
		{
			session_start();
			$this->collcode=$_SESSION['collcode'];
			$qp_code = ($this->aobj_context->mobj_data["qp_code"]);
			$ra_stu_cnt = ($this->aobj_context->mobj_data["ra_stu_cnt"]);
			$ra_from = ($this->aobj_context->mobj_data["ra_from"]);
			$ra_to = ($this->aobj_context->mobj_data["ra_to"]);
			$hall_no = '0';
			$query = "select distinct fqpcode from subject where fdoe = '2016-11-21' ";
			$results = $this->aobj_context->mobj_db->GetAll($query);
			$str_reval.="<br>";
			$str_reval.="<table style='padding:3px 4px 3px 3px;' class='tr_ventor_row' id='reval_table_data' width='50%' border='0' cellspacing='0' cellpadding='0'>";
			$str_reval.="<tr class='tr_bg1'>";
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Hall No</td>";
			// To display room name 12/11/2016
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Hall Name</td>";
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Room Capacity</td>";
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Qp Code</td>";
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Student Count</td>";
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Capacity Remaing</td>";
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:0px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Alloted</td>";
			$str_reval.="</tr>";
			$cpacity = 0;
			$studcount = 0;
			$alloted = 0;
			$remaing = 0;
			foreach($results as $ak=>$value)
			{	
				$get_student_cnt ="SELECT COUNT(DISTINCT cd.FREGNO) AS reg_cnt
								FROM canddet cd INNER JOIN subject s ON s.fdegree = cd.fdegree 
						  		and s.fexamno = cd.fexamno and s.FSUBCODE=cd.FSUBCODE
								inner join candsum cs on cs.FREGNO=cd.FREGNO AND cd.FDEGREE=cs.FDEGREE
								AND cd.FCOLLCODE=cs.FCOLLCODE
								WHERE cs.FCNTRCODE='{$this->collcode}' and TRIM(FQPCODE)='{$value[fqpcode]}' 
								and ifnull(cd.fpassmth,'') = '' AND cd.FPRESENT='P'  AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00'";
					$lobj_get_student_cnt = $this->aobj_context->mobj_db->GetRow($get_student_cnt);	
					$reg_cnt=$lobj_get_student_cnt['reg_cnt'];
					
					if($reg_cnt > 0)
					{
						$studcount = $reg_cnt;
						//var_dump($value[fqpcode]);
						$query2 ="SELECT froomno,froomname,fcapacity FROM masroom
								  WHERE froomno >= '{$hall_no}'
								  AND froomno <='z' order by froomno asc";	
								// var_dump($query2);
						$rst2 = $this->aobj_context->mobj_db->GetAll($query2);
						
						for($i=0;$i<count($rst2);$i++)
						{
							//$hall_no=str_pad($i, 3, "0", STR_PAD_LEFT);  
							$hall_no = $rst2[$i]['froomno'];
							$froomname = $rst2[$i]['froomname'];
							$capacity = $rst2[$i]['fcapacity'];
							$hallcapacity = $rst2[$i]['fcapacity'];
							if($remaing > 0)
							{
								$capacity = $remaing;
								//var_dump($remaing);
							}
							
							$val=$existing_details[$hall_no];
							$hallname = $rmname[$hall_no];
							// To display room name 12/11/2016
							
							if($capacity >= $studcount)
							{	
								$remaing = $capacity - $studcount;
								//var_dump($remain);
								$alloted = $studcount;
							}
							if($capacity < $studcount) 
							{	
								$studcount = $studcount - $capacity;
								$alloted = $capacity;
								//$remaing = 0;
							}
							if($k%2==0)
								$class='tbl_row1';
							else
								$class='tbl_row_alter1';
							
							// To break loop after max count 12/11/2016
							//var_dump($ra_stu_cnt);
							$str_reval.="<tr>";		
							$str_reval.="<td class='{$class}' style=' font-size:12px; text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >{$hall_no}</td>";
							// To display room name 12/11/2016
							$str_reval.="<td class='{$class}' style=' font-size:12px; text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >{$froomname}</td>";
							$str_reval.="<td class='{$class}' style=' font-size:12px; text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >{$hallcapacity}</td>";
							$str_reval.="<td class='{$class}' style=' font-size:12px; text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >{$value[fqpcode]}</td>";
							$str_reval.="<td class='{$class}' style=' font-size:12px; text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >{$reg_cnt}</td>";
							$str_reval.="<td class='{$class}' style=' font-size:12px; text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >{$remaing}</td>";
							$str_reval.="<td class='{$class}' align='center' style=' font-size:12px; border-left:0px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px; font-weight:bold;text-align:center;' ><input style='width:50px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$alloted}' id='ra_input_{$hall_no}' /></td>"; 
							$str_reval.="</tr>";
							$sl_no++;
							$k++;
							$pretotal = $total; 
							// To break loop after max count 12/11/2016
							/* if($currcnt <= 0)
							{
								break;
							}	 */
							//var_dump($remaing);
							if($remaing == 0)
								$hall_no++;
							
							if($capacity > $studcount)
								break;
							else
								$remaing =0;
						}
						
					}
					if(($capacity > $studcount) && $remaing == 0)
							break;			
			}
			
			
			/* $query2 ="  SELECT froomno,froomname FROM masroom
			WHERE froomno >= '{$ra_from}'
			AND froomno <='{$ra_to}' order by froomno asc";	
			$rst2 = $this->aobj_context->mobj_db->GetAll($query2);
			
			$get_data="  SELECT FHALLNO,FCAPACITY FROM room_allotment
			WHERE FCOLLCODE='{$this->collcode}'
			AND FQPCODE='{$qp_code}' ";	
			$lobj_get_data = $this->aobj_context->mobj_db->GetAll($get_data);
			// To display room name 12/11/2016
			$qury="  SELECT froomno, froomname, fcapacity FROM masroom 
			where ifnull(fdeleted,'') <> 'T' order by froomno asc";	
			$rst = $this->aobj_context->mobj_db->GetAll($qury);
			
			foreach($rst as $rmk => $rmv)
			{
				$rmname[$rmv['froomno']] = $rmv['froomname'];
				$rmcapacity[$rmv['froomno']] = $rmv['fcapacity'];
			}	 
			//end 
			$existing_details=array();
			$cnt=1;
			foreach($lobj_get_data as $ak=>$av)
			{					
				$existing_details[$av['FHALLNO']]=$av['FCAPACITY'];
			}
			$str_reval.="<br>";
			$str_reval.="<table style='padding:3px 4px 3px 3px;' class='tr_ventor_row' id='reval_table_data' width='50%' border='0' cellspacing='0' cellpadding='0'>";
			$str_reval.="<tr class='tr_bg1'>";
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Hall No</td>";
			// To display room name 12/11/2016
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Hall Name</td>";
			$str_reval.="<td align='center' style=' font-size:12px; font-weight:bold; border-left:0px solid #C5DBEC; border-right:1px solid #C5DBEC; border-top:1px solid #C5DBEC; border-bottom:1px solid #C5DBEC;'>Capacity</td>";
			$str_reval.="</tr>";
	 
			$k=0;
			$sl_no=1;
			$total=0;
			$pretotal = 0;
			for($i=0;$i<count($rst2);$i++)
			{
				//$hall_no=str_pad($i, 3, "0", STR_PAD_LEFT);  
				$hall_no = $rst2[$i]['froomno']; 
				$val=$existing_details[$hall_no];
				$hallname = $rmname[$hall_no];
				// To display room name 12/11/2016
				if(!empty($rmcapacity[$hall_no]) && empty($val))
				{	
					$val = $rmcapacity[$hall_no];				
				}	
				// end
				if(empty($val))
					$val=0;
				$total+= $val;
				
				if($k%2==0)
					$class='tbl_row1';
				else
					$class='tbl_row_alter1';
				
				// To break loop after max count 12/11/2016
				//var_dump($ra_stu_cnt);
				$currcnt = $ra_stu_cnt - $total;
				if($currcnt <= 0)
				{
					$val =  $ra_stu_cnt -($total-$val);
					$total = $pretotal+$val;
				}
				
				$str_reval.="<tr>";		
				$str_reval.="<td class='{$class}' style=' font-size:12px; text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >{$hall_no}</td>";
				// To display room name 12/11/2016
				$str_reval.="<td class='{$class}' style=' font-size:12px; text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >{$hallname}</td>";
				$str_reval.="<td class='{$class}' align='center' style=' font-size:12px; border-left:0px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px; font-weight:bold;text-align:center;' ><input style='width:50px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$val}' id='ra_input_{$hall_no}' /></td>"; 
				$str_reval.="</tr>";
				$sl_no++;
				$k++;
				$pretotal = $total;*/
				// To break loop after max count 12/11/2016
				/* if($currcnt <= 0)
				{
					break;
				}	 */
			//} 	
			$str_reval.="<tr>";		
				$str_reval.="<td class='{$class}' colspan=2 style=' font-size:12px; font-weight:bold;text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >Total</td>";
			 	$str_reval.="<td class='{$class}' align='center' style=' font-size:12px;font-weight:bold; border-left:0px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;text-align:center;' ><input id='ra_total' style='border:none;width:50px;text-align:right;background:none; font-weight:bold;border:none;' value='{$total}' /> </td>"; 
 
				$str_reval.="</tr>";			
			$str_reval.="</table>";
	 
			$arr['html']=$str_reval;
			echo $this->aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success"); 	
		}
		function SaveRoomAllotment()
		{
			$qp_code = ($this->aobj_context->mobj_data["qp_code"]);
			$ra_stu_cnt = ($this->aobj_context->mobj_data["ra_stu_cnt"]);
			$total_rooms = ($this->aobj_context->mobj_data["total_rooms"]);
			$FSESSION = ($this->aobj_context->mobj_data["FSESSION"]);
			 $FDOE = ($this->aobj_context->mobj_data["FDOE"]);
			include_once($this->aobj_context->main_src."/src/json.php"); 
			$json = new Services_JSON();
			$lstr_param = stripslashes($this->aobj_context->mobj_data["hall_obj"]);
			$mobj_jsondata = $json->decode($lstr_param);
			$obj_arr_data = get_object_vars($mobj_jsondata);
			$del="delete from room_allotment   
						WHERE FCOLLCODE='{$this->collcode}'
						AND FQPCODE='{$qp_code}' ";
			$lobj_del = $this->aobj_context->mobj_db->Execute($del);
			$hall_arr=array();
			$cnt=1;
			foreach($obj_arr_data as $hall=>$capc)
			{
				$insert=" insert into room_allotment( FCOLLCODE,FQPCODE,FHALLNO,FCAPACITY,FLOGNAME,FLOGDATE,FDOE,FSESSION  )
							values (
							'{$this->collcode}','{$qp_code}' ,'{$hall}','{$capc}','{$this->log_name}',now(),'{$FDOE}','{$FSESSION}'
							)";
				$lobj_insert = $this->aobj_context->mobj_db->Execute($insert);	
				$hall_arr[$cnt][$hall]=$capc;
				$cnt++;
			 
			}
			 
		if($lobj_insert)
		{		
		$get_student_cnt ="SELECT cd.FREGNO,cd.FEXAMNO,cd.FDEGREE,cd.FSUBCODE
								FROM canddet cd INNER JOIN subject s ON s.fdegree = cd.fdegree 
								and s.fexamno = cd.fexamno and s.FSUBCODE=cd.FSUBCODE
								inner join candsum cs on cs.FREGNO=cd.FREGNO 
								WHERE cs.FCNTRCODE='{$this->collcode}' and TRIM(FQPCODE)='{$qp_code}' 
								AND FPRESENT='P' and ifnull(cd.fpassmth,'') = '' 
								AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00' order by cd.FREGNO";//and FPRESENT='P'  and ifnull(FRECPTDATE,'0000-00-00')<>='0000-00-00'
		 $lobj_get_student_cnt = $this->aobj_context->mobj_db->GetAll($get_student_cnt);
		
		 $cand_det_arr=array();
		 $c=1;
		 foreach($lobj_get_student_cnt as $ak=>$av)
		 {
			 $cand_det_arr[$c]['FREGNO']=$av['FREGNO'];
			 $cand_det_arr[$c]['FEXAMNO']=$av['FEXAMNO'];
			 $cand_det_arr[$c]['FDEGREE']=$av['FDEGREE'];
			 $cand_det_arr[$c]['FSUBCODE']=$av['FSUBCODE'];
			 $c++;
		 }
		  
		 $reg_no_arr=array();
		 $tot_nos=0;
		 for($i=1;$i<=count($hall_arr);$i++)
		 {
			$h_arr=$hall_arr[$i];
			foreach($h_arr as $hk=>$hv)
			{
			$hall=$hk;
			$capc=$hv;
			}
			if($i==1)
			{
			$reg_no_arr[$hall]['start']=1;
			$reg_no_arr[$hall]['end']=$capc;
			 $tot_nos+=$capc;
			}
			else
			{
			$reg_no_arr[$hall]['start']=$tot_nos+1;
			$reg_no_arr[$hall]['end']=$tot_nos+$capc;
			 $tot_nos+=$capc;
			}
		 }
		 foreach($reg_no_arr as $hallk =>$hallv)
		 {
			for($z=$hallv[start];$z<=$hallv['end'];$z++)
			{
				$FREGNO=$cand_det_arr[$z]['FREGNO']; 
				$FEXAMNO=$cand_det_arr[$z]['FEXAMNO']; 
				$FDEGREE=$cand_det_arr[$z]['FDEGREE']; 
				$FSUBCODE=$cand_det_arr[$z]['FSUBCODE']; 
				$update =" update canddet,candsum
							set canddet.FHALLNO='{$hallk}'
							where  
							canddet.FCOLLCODE = candsum.FCOLLCODE
							and canddet.FDEGREE = canddet.FDEGREE
							and canddet.FREGNO = candsum.FREGNO
							and candsum.FCNTRCODE='{$this->collcode}'
							and  canddet.FREGNO='{$FREGNO}'
							and  canddet.FEXAMNO='{$FEXAMNO}'
							and  canddet.FDEGREE='{$FDEGREE}'
							and  canddet.FSUBCODE='{$FSUBCODE}'
							";
			 	
				$lobj_update = $this->aobj_context->mobj_db->Execute($update);	
 		
			}
		 }
		  
		 
		$data="Update Successfully.";
		echo $this->aobj_context->mobj_output->ToJSONEnvelope($data,0,"success"); 				
		}
		else
		{
			$data="Failed";
				echo $this->aobj_context->mobj_output->ToJSONEnvelope($data,-1,"failure"); 		
		}
	}	 
 }
	
function DisplayRoomAllotmentDetatils($aobj_context)
{
    $class_obj=new room_allotment($aobj_context);
	$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC); 
	$class_obj->DisplayRoomAllotmentDetatils();
}function SaveRoomAllotment($aobj_context)
{
    $class_obj=new room_allotment($aobj_context);
	$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC); 
	$class_obj->SaveRoomAllotment();
} 

function getRoomdetails($aobj_context)
{
	$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC); 
	
	$query = "select froomno as id, froomname as value from masroom 
			where ifnull(fdeleted,'') <>'T' order by froomno";
	$rst = 	$aobj_context->mobj_db->getAll($query);	//forder,
	
	echo $aobj_context->mobj_output->ToJSONEnvelope($rst,0,"success"); 
}	
?>