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.224.54.118


Current Path : /var/www/html/guk_old/
Upload File :
Current File : /var/www/html/guk_old/room_allotment.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->funivcode = $_SESSION['FUNIVCODE'];			
			$this->collcode = $_SESSION['collcode'];	
			$this->log_name = $_SESSION['usr'];	
		}
	 
		function DisplayRoomAllotmentDetatils()
		{
			session_start();
			$this->collcode=$_SESSION['collcode'];
			$frm_date = ($this->aobj_context->mobj_data["frm_date"]);
			$session = ($this->aobj_context->mobj_data["session"]);
			$ra_from = ($this->aobj_context->mobj_data["ra_from"]);
			$ra_to = ($this->aobj_context->mobj_data["ra_to"]);
			if($session== 'both')
			{
				$sectionvalue = "";
			}
			else 
			{
				$sectionvalue = "and s.fsession like '{$session}'";
			}
			$hall_no = '0';
			//$query = "select distinct fqpcode from subject where fdoe = '2016-11-21' ";
			
				 $query = "SELECT COUNT(DISTINCT cd.FREGNO) AS reg_cnt,s.FQPCODE,s.FDOE,r.FDESCPN,s.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 AND cd.FDEGREE=cs.FDEGREE
						LEFT JOIN reason r ON s.FSESSION = r.FREASONCD
						left outer join attshort a on  a.fdegree = cd.fdegree and cd.fexamno = a.fexamno and a.fregno = cd.fregno and a.fsubcode = s.fcsubcode
						left join absent  ab on   ab.fregno = cd.fregno and ab.fqpcode = s.fqpcode
						WHERE cs.fcollcode = '1001' AND s.fdoe = date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d')
						AND IFNULL(cd.fpassmth,'') = '' AND cd.FPRESENT='P'  {$sectionvalue}   
						AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00' 
						and ifnull(a.fregno,'') = ''
						and ifnull(ab.fabstype,'') <> 'QpM'
						GROUP BY s.FQPCODE ORDER BY s.fsession,s.FQPCODE,reg_cnt DESC";
				
			
				/*   $query = "SELECT COUNT(DISTINCT cd.FREGNO) AS reg_cnt,FQPCODE,s.FDOE,r.FDESCPN,s.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 AND cd.FDEGREE=cs.FDEGREE
						AND cd.FCOLLCODE=cs.FCOLLCODE
						LEFT JOIN reason r ON s.FSESSION = r.FREASONCD
						WHERE cs.FCNTRCODE='1001' AND s.fdoe = date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d')
						AND IFNULL(cd.fpassmth,'') = '' AND cd.FPRESENT='P' {$sectionvalue}  
						AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00'
						GROUP BY FQPCODE ORDER BY reg_cnt DESC";  */
			
			$results = $this->aobj_context->mobj_db->GetAll($query);
			//var_dump($query);
			$str_reval.="<br>";
			$str_reval.="<table style='padding:3px 4px 3px 3px;' class='tr_ventor_row' id='reval_table_data' width='50%' name = 'HALL' 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.="<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;'>Not-Alloted</td>";
			$str_reval.="</tr>";
			
			$cpacity = 0;
			$studcount = 0;
			$alloted = 0;
			$remaing = 0;
			
			$query2 ="SELECT GROUP_CONCAT(froomno,'->',froomname,'->',fcapacity) as roomname FROM masroom
					  WHERE froomno >= '{$ra_from}'
					  AND froomno <='{$ra_to}' group by froomno
					  order by forder";	
			$rst2 = $this->aobj_context->mobj_db->GetAll($query2);
			//

			$i=0;
			$k=1;
			foreach($results as $ak=>$value)
			{	
					$reg_cnt=$value['reg_cnt'];
					
					if($reg_cnt > 0)
					{
						$studcount = intval($reg_cnt);
						
						while($studcount>0)
						{	
							$arry = explode("->",$rst2[$i]['roomname']);
							
							$hall_no = $arry[0];
							$froomname = $arry[1];
							$capacity = $arry[2];
							$hallcapacity = $arry[2];
							
							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;
								$alloted = $studcount;
								if($remaing == 0 || $capacity === $studcount)
									$i++;
								
								$studcount = 0;
							}
							else 
							{	
								$studcount = $studcount - $capacity;
								$alloted = $capacity;
								$remaing = 0;
								$i++;
							}
							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.="<td class='{$class}' style=' font-size:12px; text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' >{$studcount}</td>";
							$str_reval.="</tr>"; */ 
							
							$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;' ><input style='width:70px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$hall_no}'  name = 'HALL'  disabled  id='{$k}_hallno' /> </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;' ><input style='width:100px;text-align:left;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$froomname}'  disabled id='{$k}_roomname' /> </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;' ><input style='width:70px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$hallcapacity}'  disabled id='{$k}_capacity' /> </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;' ><input style='width:70px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$value['FQPCODE']}'   disabled id='{$k}_qpcode' /> </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;' ><input style='width:70px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$reg_cnt}'  disabled  id='{$k}_count' /> 
							<input style='width:70px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='hidden' value='{$remaing}'  disabled  id='{$k}_remaing' /></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;' > </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='{$k}_alloted' /></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;' ><input style='width:70px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$studcount}'  disabled  id='{$k}_notalloted' /> 
							<input style='width:70px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='hidden' value='{$value['FDOE']}'  disabled  id='{$k}_fdoe' />
							<input style='width:70px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='hidden' value='{$value['FDESCPN']}'  disabled  id='{$k}_sestion' />
							<input style='width:70px;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='hidden' value='{$value['fsubcode']}'  disabled  id='{$k}_subcode' /></td>";
							$str_reval.="</tr>";
							
							$k++;
							/* $sl_no++;
							
							$i++;
							$pretotal = $total;  */
						}
					}
					
			}
					
			$str_reval.="</table>";
	 
			$arr['html']=$str_reval;
			echo $this->aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success"); 	
		}
		
		function SaveRoomAllotment()
		{
			ini_set('memory_limit','300M');
			ini_set('max_execution_time',3300);
			include_once($this->aobj_context->main_src."/src/json.php"); 
			$json = new Services_JSON();
			$hall_arr = stripslashes($this->aobj_context->mobj_data["hall_arr"]);
			
			$mobj_jsondata = $json->decode($hall_arr);
			$hall_arr = get_object_vars($mobj_jsondata);
			//var_dump($hall_arr);
			$i = 0;
			$oldqp = '';
			$newqp = '';
			$j = 0;
			for($k=1;$k<=count($hall_arr);$k++)
			{		
				$newqp = $hall_arr[$k]->qpcode;
				
				if($newqp != $oldqp)
				{
					$i = 0;
				}
				if($hall_arr[$j]->remaing > 0)
				{
					$hall_arr[$k]->capacity = $hall_arr[$j]->remaing;
				}
				/* if($hall_arr[$k]->remaing >0)
				{
					$hall_arr[$k]->capacity = $hall_arr[$k]->remaing;
				} */
				//var_dump($hall_arr[$k]->subcode);die();
				
				$insert =" insert into room_allotment(FCOLLCODE,FQPCODE,FHALLNO,FCAPACITY,FLOGNAME,FLOGDATE,FDOE,FSESSION )
							values ('{$this->collcode}','{$hall_arr[$k]->qpcode}' ,'{$hall_arr[$k]->hallno}','{$hall_arr[$k]->alloted}','{$this->log_name}',now(),'{$hall_arr[$k]->fdoe}','{$hall_arr[$k]->sestion}')";
				$lobj_insert = $this->aobj_context->mobj_db->Execute($insert);	
				
			$query = "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 
						left join attshort a on  a.fdegree = cd.fdegree and cd.fexamno = a.fexamno and a.fregno = cd.fregno and left(a.fsubcode,4) = cd.fsubcode
						left join absent  ab on   ab.fregno = cd.fregno 
						WHERE cs.FCNTRCODE='{$this->collcode}' AND TRIM(s.FQPCODE)='{$hall_arr[$k]->qpcode}' 
						AND FPRESENT='P' AND IFNULL(cd.fpassmth,'') = '' 
						and ifnull(a.fregno,'') = ''
						and ifnull(ab.fabstype,'') <> 'QpM'
						AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00' ORDER BY cd.FREGNO LIMIT {$i},{$hall_arr[$k]->capacity}";
			//var_dump($query);
			$results = $this->aobj_context->mobj_db->GetAll($query);
			//	var_dump($hall_arr[$k]->hallno);
				foreach($results as $value)
				{
					$update =" update canddet,candsum
							set canddet.FHALLNO='{$hall_arr[$k]->hallno}'
							where
							canddet.FCOLLCODE = candsum.FCOLLCODE
							and canddet.FDEGREE = canddet.FDEGREE
							and canddet.FREGNO = candsum.FREGNO
							and candsum.FCNTRCODE='{$this->collcode}'
							and  canddet.FSUBCODE = '{$value['FSUBCODE']}'
							and canddet.fregno = '{$value['FREGNO']}'";
							
							//var_dump($update);
							
				$lobj_update = $this->aobj_context->mobj_db->Execute($update);	

				}
				$i = $i+$hall_arr[$k]->capacity; 
				$oldqp = $hall_arr[$k]->qpcode;
				$j++;
			}

		if($lobj_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 forder";
	$rst = 	$aobj_context->mobj_db->getAll($query);	//forder,
	
	echo $aobj_context->mobj_output->ToJSONEnvelope($rst,0,"success"); 
}	
?>