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


Current Path : /proc/thread-self/root/var/www/oasis/src/
Upload File :
Current File : //proc/thread-self/root/var/www/oasis/src/room_allotment_datewise.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 DisplayRoomAllotmentDetatilsDatewise()
		{
			session_start();
			ini_set('memory_limit','900M');
			ini_set('max_execution_time',0);
			$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"]);
			$deggrp = ($this->aobj_context->mobj_data["deggrp"]);
			$romm = ($this->aobj_context->mobj_data["romm"]);
			
			$roomarray = [];
			$roomalt = explode(",", $romm);
			
			foreach($roomalt as $key => $val){
				if($val == 'All'){
					$data = "ALL";
				}else{
					$roomarr .= "'".$val."',";
				}
			}
			$roomarray = substr_replace($roomarr ,"",-1);
			if($data == 'ALL'){
				$value = 'All';
			}else{
				$value = $roomarray;
			}
			
			if($value == 'All'){
				$cond="";
			}else{
				$cond="and froomno in ($value)";
			}
		
			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' ";
			

			//$$canddettmp = "tmp$canddet{$this->degree_code}{$this->college_code}";
			if($_SESSION['fexamseparate'] == 'T')
			{
				$candsum = "examcandsum"; 
				$canddet = "examcanddet"; 

			}else
			{
				$candsum = "candsum"; 
				$canddet = "canddet"; 
			}	

		/*$query = "CREATE TEMPORARY TABLE IF NOT EXISTS {$$canddettmp} AS
					select * from $canddet where fcollcode = '{$this->college_code}' and fdegree = '{$this->degree_code}'";
		$this->aobj_context->mobj_db->execute($query);*/	
		
		/*$query = "CREATE TEMPORARY TABLE IF NOT EXISTS {$$candsumttmp} AS
					select * from $candsum where FCNTRCODE = '{$this->collcode}'";
		$this->aobj_context->mobj_db->execute($query);
*/

			$query = "select * from collexam where 
			fcollcode = '{$this->collcode}' 
			and DATE_FORMAT(NOW(),'%Y-%m-%d') 
			BETWEEN DATE_FORMAT(frafrom,'%Y-%m-%d') 
			AND DATE_FORMAT(frato,'%Y-%m-%d')";
			
			$student_exam_details = $this->aobj_context->mobj_db->GetRow($query); 
			
			if(count($student_exam_details) > 0)
			{

			}else
			{
				$arr = "Room Allotment Not Enabled";
				echo $this->aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
				return;
				
			} 


			$mpcnd = "and ifnull(ab.fabstype,'') <> 'QpM'";
			if($this->funivcode == '027' || $this->funivcode == '003' || $this->funivcode == '023' || $this->funivcode == '041' || $this->funivcode == '035' || $this->funivcode == '050' || $this->funivcode == '051' || $this->funivcode == '052')
				$mpcnd = "";


			if($this->funivcode == '050')	
				$orderby = "ORDER BY s.FQPCODE,s.fsession";
			else	
				$orderby = "ORDER BY reg_cnt DESC,s.fsession,s.FQPCODE";

			$query = "SELECT COUNT(DISTINCT cd.FREGNO) AS reg_cnt, s.FQPCODE,concat(s.fsubname,' - ',s.fssubname) as FQPCODE1,s.FDOE, 
					r.FDESCPN, 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 degree d on cd.fdegree = d.fdegree and cd.fexamno = d.fexamno
					INNER JOIN  $candsum cs ON 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
					and a.fyear = cd.fyear
					and a.fexamtype = cd.fexamtype
					left join absent  ab on   ab.fregno = cd.fregno and ab.fqpcode = s.fqpcode
					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 ifnull(a.fregno,'') = '' and ifnull(s.fqpcode,'') <> ''
					{$mpcnd}
					and ifnull(cd.FTHPR,'') <> 'T'
					and ifnull(s.fparentsub,'') <> 'T'
					and INSTR(cs.fhtenable,cd.fexamno) >0
					and d.fdeggrp = '{$deggrp}'
					GROUP BY d.fdeggrp,s.FQPCODE 
					{$orderby}";
			
			$results = $this->aobj_context->mobj_db->GetAll($query); 
			// var_dump($query);
			// die();
			// if($this->funivcode == '050')
			// {	
			// 	var_dump($query);
				// die();
			// }
			
			$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 degree d on cd.fdegree = d.fdegree and cd.fexamno = d.fexamno
					INNER JOIN {$candsum} cs ON  cd.fcollcode = cs.fcollcode 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
					and a.fyear = cd.fyear
					and a.fexamtype = cd.fexamtype
					left join absent  ab on   ab.fregno = cd.fregno and ab.fqpcode = s.fqpcode
					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 ifnull(a.fregno,'') = ''
					$mpcnd
					and INSTR(cs.fhtenable,cd.fexamno) >0
					and d.fdeggrp = '{$deggrp}'
					GROUP BY s.fdoe
					order by d.fdeggrp";
			
			$results1 = $this->aobj_context->mobj_db->GetRow($query1);
			
			$reg_cnt = $results1['reg_cnt'];
			
			

			$query1 = "select sum(fcapacity) as fcapacity from masroom where fcollcode = '{$this->collcode}'
			$cond";
			// var_dump($query1);
			// 		  die();
			$results1 = $this->aobj_context->mobj_db->GetRow($query1);
			
			$fcapacity = $results1['fcapacity'];
			
			// if($this->funivcode == '050')
			// {	
			// 	var_dump($fcapacity);
			// 	var_dump($reg_cnt);
			// 	die();
			// }

			if($reg_cnt > $fcapacity)
			{
				//$arr = "Insufficient Rooms for the allotment. Total Capacity : ".$fcapacity." Total Strength :".$reg_cnt;
                $arr = "Total Capacity : ".$fcapacity." Total Strength : ".$reg_cnt." Insufficient rooms for the allotment. Please select sufficient rooms";
				echo $this->aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure"); 
				
			}else
			{
				$str_reval.="<br>";
				$str_reval.="<table class='tr_ventor_row' id='reval_table_data' width='95%' 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;'>Block 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;'>Room / Block 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;'>Block 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:40%; 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;'>Subject 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;'>Total</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;'>Remaining</td>";
				$str_reval.="</tr>";
				
				$cpacity = 0;
				$studcount = 0;
				$alloted = 0;
				$remaing = 0;
				
				$query2 ="SELECT GROUP_CONCAT(froomno,'->',froomname,'->',fcapacity) as roomname FROM masroom
						  WHERE  fcollcode = '{$this->collcode}' $cond
						  group by froomno
						  order by froomno";
						 
				$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='text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:0px;' ><input style='border:0px;box-sizing: border-box;text-align:center; width:100%;padding:2px;' 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='text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:0px;' ><input style='border:0px;box-sizing: border-box;text-align:left; width:100%;padding:2px;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$froomname}'  disabled id='{$k}_roomname' /> </td>";
								$str_reval.="<td class='{$class}' style='text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:0px;' ><input style='border:0px;box-sizing: border-box;text-align:center; width:100%;padding:2px;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$hallcapacity}'  disabled id='{$k}_capacity' /> </td>";
								$str_reval.="<td class='{$class}' style='text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:0px;' ><input style='border:0px;box-sizing: border-box;text-align:left; width:100%;padding:2px;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$value['FQPCODE']}'   disabled id='{$k}_qpcode' /> </td>";
								$str_reval.="<td class='{$class}' style='text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:0px;' ><input style='border:0px;box-sizing: border-box;text-align:left; width:100%;padding:2px;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text' value='{$value['FQPCODE1']}'   disabled id='{$k}_subname' /> </td>";
								$str_reval.="<td class='{$class}' style='text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:0px;' ><input style='border:0px;box-sizing: border-box;text-align:center; width:100%;padding:2px;' 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='text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:2px;' > </td>";							
								$str_reval.="<td class='{$class}' style='text-align:center; border-left:0px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:0px;'><input style='border:0px;box-sizing: border-box;text-align:center; width:100%;padding:2px;' onblur='CaclulateRaGrandTotal();' onkeypress='return AcceptNumbersOnly(event);' type='text'  value='{$alloted}'  disabled id='{$k}_alloted' /></td>"; 
								$str_reval.="<td class='{$class}' style='text-align:center; border-left:1px solid #C5DBEC; border-right:1px solid #C5DBEC; padding:0px;' ><input style='border:0px;box-sizing: border-box;text-align:center; width:100%;padding:2px;' 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"); 
				return;
			}		
		}
		
		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"]);
			$deggrp = stripslashes($this->aobj_context->mobj_data["faculty"]);

			
			$mobj_jsondata = $json->decode($hall_arr);
			$hall_arr = get_object_vars($mobj_jsondata);
			
			$i = 0;
			$oldqp = '';
			$newqp = '';
			$j = 0;

			if($_SESSION['fexamseparate'] == 'T')
			{
				$candsum = "examcandsum"; 
				$canddet = "examcanddet"; 

			}else
			{
				$candsum = "candsum"; 
				$canddet = "canddet"; 
			}	

				/*
						$query = "CREATE TEMPORARY TABLE IF NOT EXISTS {$$canddettmp} AS
									select cd.* from $canddet cd inner join $candsum cs on cd.fcollcode = cs.fcollcode 
									and cd.fdegree = cs.fdegree and cd.fregno = cs.fregno where 
									cs.FCNTRCODE = '{$this->collcode}'";
						$this->aobj_context->mobj_db->execute($query);	
						
						$query = "CREATE TEMPORARY TABLE IF NOT EXISTS {$$candsumttmp} AS
									select * from $candsum where FCNTRCODE = '{$this->collcode}'";
						$this->aobj_context->mobj_db->execute($query);*/


				$mpcnd = "and ifnull(ab.fabstype,'') <> 'QpM'";
			if($this->funivcode == '027' || $this->funivcode == '003' || $this->funivcode == '023' || $this->funivcode == '041' || $this->funivcode == '035' || $this->funivcode == '050' || $this->funivcode == '008' || $this->funivcode == '052' || $this->funivcode == '051')
				$mpcnd = "";
				

			if($this->funivcode == '050')	
				$orderby = "ORDER BY s.fsession,s.FQPCODE,s.fsession";
			else	
				$orderby = "ORDER BY reg_cnt DESC,s.fsession,s.FQPCODE";

			for($k=1;$k<=count($hall_arr);$k++)
			{		
		
				$newqp = $hall_arr[$k]->qpcode;
				if($newqp != $oldqp)
				{

					// $query = "select distinct fdeggrp from degree d inner join subject s on 
					// d.fdegree = s.fdegree 
					// and d.fexamno = s.fexamno where s.fqpcode = '{$hall_arr[$k]->qpcode}'";
					// $results = $this->aobj_context->mobj_db->GetRow($query);

					// $deggrp = $results['fdeggrp'];


					$i = 0;

					if($this->funivcode == '046')
					{
						$order = "st.fayear,cd.FREGNO";
					}
					else
					{
						$order = "cd.fregno";
					}

					$query1 = "SET SESSION group_concat_max_len=10000000";
					$results = $this->aobj_context->mobj_db->Execute($query1);
					if($deggrp == 'BED' && ($this->funivcode == '027' || $this->funivcode == '026'))
					{
						$query = "SELECT s.fqpcode, group_concat(distinct concat(\"'\",concat(cd.fdegree,cd.fsubcode,cd.FREGNO),\"'\") order by st.fname) 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 
						INNER join degree d on cd.fdegree = d.fdegree and cd.fexamno = d.fexamno
						inner join student st on cs.fregno = st.fregno and 
						cs.fdegree = st.fdegree and cs.fcollcode = st.fcollcode
						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
						and a.fyear = cd.fyear
						and a.fexamtype = cd.fexamtype
						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(cd.FTHPR,'') <> 'T'
						and d.fdeggrp = '{$deggrp}'
						{$mpcnd}
						AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00' 
						group by s.fqpcode";
						//var_dump($query);

						
					}else
					{
						$query = "SELECT s.fqpcode, group_concat(distinct concat(\"'\",concat(cd.fdegree,cd.fsubcode,cd.FREGNO),\"'\") order by {$order}) 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.FREGNO=cd.FREGNO 
						inner join student st on cs.fregno = st.fregno and st.fdegree = cs.fdegree
						INNER join degree d on cd.fdegree = d.fdegree and cd.fexamno = d.fexamno
						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
						and a.fyear = cd.fyear
						and a.fexamtype = cd.fexamtype
						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(cd.FTHPR,'') <> 'T'
						and INSTR(cs.fhtenable,cd.fexamno) >0
						and d.fdeggrp = '{$deggrp}'
						{$mpcnd}
						AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00' 
						group by s.fqpcode";
						// var_dump($query);
						// die();
					}
					
					$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);

				$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}')
							ON DUPLICATE KEY UPDATE 
							FCOLLCODE = '{$this->collcode}',
							FQPCODE = '{$hall_arr[$k]->qpcode}',
							FHALLNO = '{$hall_arr[$k]->hallno}',
							FCAPACITY = '{$hall_arr[$k]->alloted}',
							FLOGNAME = '{$this->log_name}',
							FLOGDATE = now(),
							FDOE = '{$hall_arr[$k]->fdoe}',
							FSESSION = '{$hall_arr[$k]->sestion}',
							FORDER = '{$k}'";
							
				$lobj_insert = $this->aobj_context->mobj_db->Execute($insert);
				
				
				$fregno = explode(',',$results['fregno']);
				
				$FSUBCODE = $results['fqpcode'];
				
				//var_dump("i = ".$i."hall_arr[k]->capacity".$hall_arr[$k]->capacity);
				
				$regnoin = array_slice($fregno,$i,$hall_arr[$k]->capacity);
				$regnoin = implode(',',$regnoin);
				//var_dump($hall_arr[$k]);
				//var_dump($hall_arr[$k]->hallno.'room'.$regnoin);
				if($regnoin !='')
				{
					$update = "update $canddet,$candsum
					set $canddet.FHALLNO='{$hall_arr[$k]->hallno}'
					where
					$canddet.FCOLLCODE = $candsum.FCOLLCODE
					and $canddet.FREGNO = $candsum.FREGNO
					and $candsum.FCNTRCODE='{$this->collcode}'
					and INSTR($candsum.fhtenable,$canddet.fexamno) >0
					and concat($canddet.fdegree,$canddet.fsubcode,$canddet.FREGNO) in({$regnoin})";
					
					$lobj_update = $this->aobj_context->mobj_db->Execute($update);	
				}
				
				$i = $i+$hall_arr[$k]->capacity; 
				$oldqp = $hall_arr[$k]->qpcode;
				$j++;
			}

			if($lobj_update)
			{
				// var_dump($hall_arr);
				$query = "delete from anscapt where fdoe = '{$hall_arr[1]->fdoe}' and fcntrcode = '{$this->collcode}'
				and ifnull(fansbookno,'') = ''";
				
				$lobj_update = $this->aobj_context->mobj_db->Execute($query);	
				// var_dump($lobj_update);
				$query = "insert into anscapt(fregno, fdegree, fqpcode, fpresent, fyear, fexamtype, fdoe, fsession, fcntrcode, froomno)
				select a.fregno, a.fdegree, s.fqpcode, a.fpresent, a.fyear, a.fexamtype, s.fdoe, s.fsession, b.fcntrcode, 
				a.fhallno from $canddet a inner join $candsum b on a.fcollcode = b.fcollcode 
				and a.fregno = b.fregno inner join subject s on a.fdegree = s.fdegree and a.fexamno = s.fexamno
				and a.fsubcode = s.fsubcode
				and INSTR(b.fhtenable,a.fexamno) >0
				where ifnull(b.frecptdate,'') <> '' and ifnull(a.fpresent,'') = 'P' and ifnull(fpassmth,'') = ''
				and fdoe = '{$hall_arr[1]->fdoe}' and b.fcntrcode = '{$this->collcode}'";
				
				$lobj_update = $this->aobj_context->mobj_db->Execute($query);	
				// var_dump($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"); 
}	
?>