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 : 3.145.41.108


Current Path : /var/www/html/mum/src/
Upload File :
Current File : /var/www/html/mum/src/room_allotment_datewise.php

<?php
/*error_reporting(E_ALL);
ini_set('display_errors','on');*/
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 DisplayRoomAllotmentDetatilsDatewise()
		{
			session_start();
			$this->collcode=$_SESSION['collcode'];
			$frm_date = ($this->aobj_context->mobj_data["frm_date"]);
			$session = ($this->aobj_context->mobj_data["session"]);
			$faculty = ($this->aobj_context->mobj_data["faculty"]);
			$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
					inner join degree dd on cd.fdegree=dd.fdegree and dd.fexamno=cd.fexamno 
					WHERE 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 cs.fcntrcode = '{$this->collcode}' 
					and dd.ffaculty = '{$faculty}'
					and ifnull(a.fregno,'') = '' and ifnull(s.fqpcode,'') <> ''
					and ifnull(ab.fabstype,'') <> 'QpM'
					GROUP BY s.FQPCODE ORDER BY reg_cnt DESC,s.fsession,s.FQPCODE";
			//var_dump($query);
			$results = $this->aobj_context->mobj_db->GetAll($query); 
			
			$query1 = "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  cd.fcollcode = cs.fcollcode and cd.FDEGREE=cs.FDEGREE and cs.FREGNO=cd.FREGNO 
					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
					inner join degree dd on cd.fdegree=dd.fdegree and dd.fexamno=cd.fexamno 
					WHERE  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 cs.fcntrcode = '{$this->collcode}' 
					and dd.ffaculty = '{$faculty}'
					and ifnull(a.fregno,'') = ''
					and ifnull(ab.fabstype,'') <> 'QpM'
					GROUP BY s.fdoe";
			
			$results1 = $this->aobj_context->mobj_db->GetRow($query1);
			$reg_cnt = $results1['reg_cnt'];
			
			$query1 = "select sum(fcapacity) as fcapacity from masroom where froomno >= '{$ra_from}'
					  AND froomno <='{$ra_to}' and fcollcode = '{$this->collcode}'";
			$results1 = $this->aobj_context->mobj_db->GetRow($query1);
			$fcapacity = $results1['fcapacity'];
			
			if($reg_cnt > $fcapacity)
			{
				$arr = "Insufficient Rooms for the allotment. Total Capacity : ".$fcapacity." Total Strength :".$reg_cnt;
				echo $this->aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure"); 
				
			}else
			{
				$str_reval.="<br>";
				$str_reval.="<table style='padding:' class='tr_ventor_row' id='reval_table_data' width='80%' name = 'HALL' border='0' cellspacing='0' cellpadding='0'>";
				$str_reval.="<tr class='tr_bg1'>";
				$str_reval.="<td align='center' style='width:8%; 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='width:30%; 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='width:8%;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='width:10%; 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='width:8%; 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='width:8%; 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='width:8%; 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}' AND fcollcode = '{$this->collcode}'
						  group by froomno
						  order by froomno";	
				$rst2 = $this->aobj_context->mobj_db->GetAll($query2);
				//

				$i=0;
				$k=1;
				//var_dump($rst2);
				foreach($results as $ak=>$value)
				{	
						$reg_cnt = $value['reg_cnt'];
						//echo "student count \n";
						//var_dump($reg_cnt);
						if($reg_cnt > 0)
						{
							$studcount = intval($reg_cnt);
							//echo "student count in if\n";
							//var_dump($studcount);	
							while($studcount>0)
							{	
								$arry = explode("->",$rst2[$i]['roomname']);
								
								$hall_no = $arry[0];
								$froomname = $arry[1];
								$capacity = $arry[2];
								$hallcapacity = $arry[2];
								//echo "Hall no\n";
								//var_dump($arry);
								if($remaing > 0)
								{
									$capacity = $remaing;
									//echo "student count Remaining\n";
									//var_dump($remaing);
								}
								
								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';
								
								
								$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:100%;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:100%;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:100%;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:100%;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:100%;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}' 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:100%;text-align:right;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text'  value='{$alloted}'  disabled 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:100%;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++;
								/*echo "K= ".$k."\n";
								echo "student Count\n";
								var_dump($studcount);*/
								/*if($k == 40)
									break;*/
							}
						}
						
				}
						
				$str_reval.="</table>";
		 	
				$arr['html']=$str_reval;
				echo $this->aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success"); 
			}		
		}
		
		function SaveRoomAllotmentDatewise()
		{
			ini_set('memory_limit','900M');
			ini_set('max_execution_time',0);
			include_once($this->aobj_context->main_src."/src/json.php"); 
			$json = new Services_JSON();
			$hall_arr = stripslashes($this->aobj_context->mobj_data["hall_arr"]);
			$faculty = ($this->aobj_context->mobj_data["faculty"]);
			
			$mobj_jsondata = $json->decode($hall_arr);
			$hall_arr = get_object_vars($mobj_jsondata);
			//var_dump($hall_arr);
			$i = 0;
			$oldqp = '';
			$newqp = '';
			$j = 0;
				$mpcnd = "and ifnull(ab.fabstype,'') <> 'QpM'";
				if($this->funivcode == '027')
					$mpcnd = "";
			for($k=1;$k<=count($hall_arr);$k++)
			{		
		
				$newqp = $hall_arr[$k]->qpcode;
				if($newqp != $oldqp)
				{
					$i = 0;
					
					$query1 = "SET SESSION group_concat_max_len=100000";
					$results1 = $this->aobj_context->mobj_db->Execute($query1);

					$query1 = "SET SESSION group_concat_max_len=10000000";
					$results = $this->aobj_context->mobj_db->Execute($query1);
					
					$query = "SELECT s.fqpcode, group_concat(distinct concat(\"'\",concat(cd.fdegree,cd.fsubcode,cd.FREGNO),\"'\") order by cd.fdegree, cd.fsubcode, cd.fregno) as 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.FCOLLCODE = cd.FCOLLCODE and cs.fdegree = cd.fdegree and 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 
					inner join degree dd on dd.fdegree=cd.fdegree and dd.fexamno=cd.fexamno
					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 dd.ffaculty='{$faculty}'
					{$mpcnd}
					AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00' 
					group by s.fqpcode";
				//	var_dump($query);
					$results = $this->aobj_context->mobj_db->GetRow($query);

				}

				if($hall_arr[$j]->remaing > 0)
				{
					$hall_arr[$k]->capacity = $hall_arr[$j]->remaing;
				}
				
				$insert = " insert into room_allotment(FCOLLCODE,FQPCODE,FHALLNO,FCAPACITY,FLOGNAME,FLOGDATE,FDOE,FSESSION,FORDER )
							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}','{$k}')";
				$lobj_insert = $this->aobj_context->mobj_db->Execute($insert);
			
				//var_dump($insert);
				
				$fregno = explode(',',$results['fregno']);
				//var_dump($fregno);
				$FSUBCODE = $results['FSUBCODE'];
				$regnoin = array_slice($fregno,$i,$hall_arr[$k]->capacity);
				$regnoin = implode(',',$regnoin);
				
				//var_dump($regnoin);
			
				$update = "update canddet,candsum
				set canddet.FHALLNO='{$hall_arr[$k]->hallno}'
				where
				canddet.FCOLLCODE = candsum.FCOLLCODE
				and canddet.FDEGREE = candsum.FDEGREE
				and canddet.FREGNO = candsum.FREGNO
				and candsum.FCNTRCODE='{$this->collcode}'
				and concat(canddet.fdegree,canddet.fsubcode,canddet.FREGNO) in({$regnoin})";
				$lobj_update = $this->aobj_context->mobj_db->Execute($update);	
				
				//var_dump($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 DisplayRoomAllotmentDetatilsDatewise($aobj_context)
{
    $class_obj=new room_allotment($aobj_context);
	$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC); 
	$class_obj->DisplayRoomAllotmentDetatilsDatewise();
}

function SaveRoomAllotmentDatewise($aobj_context)
{
    $class_obj=new room_allotment($aobj_context);
	$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC); 
	$class_obj->SaveRoomAllotmentDatewise();
} 

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