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.217.26.8
<?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");
}
?>
|