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.137.200.56
<?php
function getExamMonthRoomAllotment($aobj_context){
session_start();
$aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
$collcode = $aobj_context->mobj_data['collcode'];
$doe = stripslashes($aobj_context->mobj_data["dates"]);
$query = "select funivcode from control";
$results = $aobj_context->mobj_db->GetRow($query);
$funivcode = $results['funivcode'];
$query = "select froomno as `key`, froomno as `value`, concat(froomname,' - ',fcapacity) as `label` from masroom
where ifnull(fdeleted,'') <>'T' and fcapacity > 0
and fcollcode = '{$collcode}' order by froomno ";
$rst1 = $aobj_context->mobj_db->getAll($query);
$query = "SELECT DISTINCT dg.fdeggrp as id, dg.fdescpn as value
FROM deggrp dg
INNER JOIN degree d ON d.fdeggrp = dg.fdeggrp
INNER JOIN subject s on s.fdegree = d.fdegree and d.fexamno = s.fexamno
INNER JOIN timetable t on s.fqpcode = t.fqpcode
INNER JOIN colldeg c ON c.fdegree = d.fdegree and ifnull(c.fdeleted,'') <> 'T'
WHERE t.fdate ='{$doe}'";
$rst2 = $aobj_context->mobj_db->getAll($query);
// $query = "SELECT distinct concat(d.fyear,'*',d.fexamtype)as `value`, concat(t.fdeggrp,' - ',d.fexamdate) as `label`,
// concat(t.fdeggrp,' - ',d.fexamdate) as `key`
// FROM degexam d INNER JOIN candsum c
// ON d.fdegree = c.fdegree and d.fyear = c.fyear
// and d.fexamtype = c.fexamtype
// INNER JOIN subject s on s.fdegree = c.fdegree
// INNER JOIN timetable t on s.fqpcode = t.fqpcode
// and t.fyear = c.fyear
// and t.fexamtype = c.fexamtype
// WHERE c.fcntrcode = '{$collcode}'
// and t.fdate ='{$doe}'
// GROUP BY d.fyear,d.fexamtype,t.fdeggrp";
// $result1 = $aobj_context->mobj_db->GetAll($query);
$query = "SELECT distinct CONCAT(d.fyear,'*',d.fexamtype,'-',d.fexamdate)AS `value`, concat(t.fdeggrp,' - ',d.fexamdate) as `label`,
concat(t.fdeggrp,' - ',d.fexamdate) as `key`
FROM degexam d INNER JOIN candsum c
ON d.fdegree = c.fdegree and d.fyear = c.fyear
and d.fexamtype = c.fexamtype
INNER JOIN subject s on s.fdegree = c.fdegree
INNER JOIN timetable t on s.fqpcode = t.fqpcode
and t.fyear = c.fyear
and t.fexamtype = c.fexamtype
WHERE c.fcntrcode = '{$collcode}'
and t.fdate ='{$doe}'
GROUP BY d.fyear,d.fexamtype,t.fdeggrp";
$result1 = $aobj_context->mobj_db->GetAll($query);
if($funivcode == '012' || $funivcode == '052')
{
$query3 = "select distinct FREASONCD as id,concat(r.FDESCPN,' (',r.FREASONCD,')') as value
from reason r
order by r.FREASONCD";
}else
{
$cnd = "inner join colldeg cd on s.fdegree = cd.fdegree and ifnull(cd.fdeleted,'') <> 'T'
where cd.fcollcode = '{$collcode}'";
if($funivcode == '042')
{
$cnd = "";
}
$query3 = "SELECT DISTINCT s.fsession AS `key`,s.fsession AS `value`,CONCAT(s.fsession, ' - ',r.FDESCPN) AS `label`
from subject s inner join reason r on s.fsession = r.FREASONCD
{$cnd}
order by s.fsession";
}
$rst3 =$aobj_context->mobj_db->getAll($query3);
$rst['room'] = $rst1;
$rst['deggrp'] = $rst2;
$rst['session'] = $rst3;
$rst['exmmonth'] = $result1;
echo $aobj_context->mobj_output->ToJSONEnvelope($rst,0,"success");
}
// function getRoomAllotmentdetails($aobj_context){
// session_start();
// $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
// $collcode = $aobj_context->mobj_data['collcode'];
// $funivcode = $aobj_context->mobj_data['univcode'];
// $query = "select froomno as `key`,froomno as `value`, concat(froomname,' - ',fcapacity) as `label` from masroom
// where ifnull(fdeleted,'') <>'T' and fcapacity > 0
// and fcollcode = '{$collcode}' order by froomno ";
// $rst1 = $aobj_context->mobj_db->getAll($query);
// $query1 = "SELECT DISTINCT dg.fdeggrp as `key`,dg.fdeggrp as `value`, CONCAT(dg.fdeggrp,' - ',dg.fdescpn) as `label`
// FROM deggrp dg
// INNER JOIN degree d ON d.fdeggrp = dg.fdeggrp and d.fexamno ='A'
// INNER JOIN colldeg c ON c.fdegree = d.fdegree and ifnull(c.fdeleted,'') <> 'T'
// WHERE c.fcollcode='{$collcode}'";
// $rst2 = $aobj_context->mobj_db->getAll($query1);
// if($funivcode == '012' || $funivcode == '052')
// {
// $query3 = "select distinct FREASONCD as id,concat(r.FDESCPN,' (',r.FREASONCD,')') as value
// from reason r
// order by r.FREASONCD";
// }else
// {
// $cnd = "inner join colldeg cd on s.fdegree = cd.fdegree and ifnull(cd.fdeleted,'') <> 'T'
// where cd.fcollcode = '{$collcode}'";
// if($funivcode == '042'){
// $cnd = "";
// }
// $query3 = "SELECT DISTINCT s.fsession AS `key`,s.fsession AS `value`,CONCAT(s.fsession, ' - ',r.FDESCPN) AS `label`
// from subject s inner join reason r on s.fsession = r.FREASONCD
// {$cnd}
// order by s.fsession";
// }
// $rst3 = $aobj_context->mobj_db->getAll($query3);
// $rst['room'] = $rst1;
// $rst['deggrp'] = $rst2;
// $rst['session'] = $rst3;
// echo $aobj_context->mobj_output->ToJSONEnvelope($rst,0,"success");
// }
function getAllotedRoomToView($aobj_context){
session_start();
ini_set('memory_limit','900M');
ini_set('max_execution_time',0);
$collcode=$aobj_context->mobj_data['collcode'];
$funivcode=$aobj_context->mobj_data['univcode'];
$frm = ($aobj_context->mobj_data["dates"]);
$session = ($aobj_context->mobj_data["session"]);
$ra_from = ($aobj_context->mobj_data["ra_from"]);
$ra_to = ($aobj_context->mobj_data["ra_to"]);
$deggrp = ($aobj_context->mobj_data["deg"]);
$romm = ($aobj_context->mobj_data["room"]);
$date=date_create($frm);
$frm_date=date_format($date,"d/m/Y");
$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== 'select')
{
$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 = '{$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 = $aobj_context->mobj_db->GetRow($query);
if(count($student_exam_details) > 0)
{
}else
{
$arr = "Room Allotment Not Enabled";
echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
return;
}
$mpcnd = "and ifnull(ab.fabstype,'') <> 'QpM'";
if($funivcode == '027' || $funivcode == '003' || $funivcode == '023' || $funivcode == '041' || $funivcode == '035' || $funivcode == '050' || $funivcode == '051' || $funivcode == '052')
$mpcnd = "";
if($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 = '{$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 = 'UG'
GROUP BY d.fdeggrp,s.FQPCODE
{$orderby}";
$results = $aobj_context->mobj_db->GetAll($query);
// var_dump($results);
// 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 = '{$collcode}'
and ifnull(a.fregno,'') = ''
$mpcnd
and INSTR(cs.fhtenable,cd.fexamno) >0
and d.fdeggrp = 'UG'
GROUP BY s.fdoe
order by d.fdeggrp";
// var_dump($query1);die();
$results1 = $aobj_context->mobj_db->GetRow($query1);
$reg_cnt = $results1['reg_cnt'];
$query1 = "select sum(fcapacity) as fcapacity from masroom where fcollcode = '{$collcode}'
$cond";
$results1 = $aobj_context->mobj_db->GetRow($query1);
$fcapacity = $results1['fcapacity'];
$cpacity = 0;
$studcount = 0;
$alloted = 0;
$remaing = 0;
$query2 ="SELECT GROUP_CONCAT(froomno,'->',froomname,'->',fcapacity) as roomname FROM masroom
WHERE fcollcode = '{$collcode}' $cond
group by froomno
order by froomno";
$rst2 = $aobj_context->mobj_db->GetAll($query2);
$rst['subject'] = $results;
$rst['reg_cnt'] = $reg_cnt;
$rst['capacity'] = $fcapacity;
$rst['roomdet']=$rst2;
echo $aobj_context->mobj_output->ToJSONEnvelope($rst,0,"success");
}
function SaveRoomAllotmentDatewise($aobj_context){
session_start();
$data = $aobj_context->mobj_data["data"];
$hall_arr = json_decode($data,true);
$collcode=$aobj_context->mobj_data['collcode'];
$funivcode=$aobj_context->mobj_data['univcode'];
$frm_date = $aobj_context->mobj_data["dates"];
$session = $aobj_context->mobj_data["session"];
$ra_from = $aobj_context->mobj_data["ra_from"];
$ra_to = $aobj_context->mobj_data["ra_to"];
$alternative = $aobj_context->mobj_data["alternative"];
$deggrp = $aobj_context->mobj_data["deggrp"];
$romm = $aobj_context->mobj_data["romm"];
$exmmonth = $aobj_context->mobj_data["exammonth"];
$fusertype=$aobj_context->mobj_data["fusertype"];
$fuser=$aobj_context->mobj_data["user"];
$exmmonthy = explode('-',$exmmonth);
$yearmode=explode('*',$exmmonthy[0]);
$year = $yearmode[0];
$examtype = $yearmode[1];
if($_SESSION['fexamseparate'] == 'T')
{
$candsum = "examcandsum";
$canddet = "examcanddet";
}else
{
$candsum = "candsum";
$canddet = "canddet";
}
$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
{
if($funivcode == '049'){
$sectionvalue = "and t.fsessiont like '{$session}'";
}else if($funivcode == '098'){
$sectionvalue = "and t.fsession like '{$session}%'";
}else{
$sectionvalue = "and t.fsessiont like '{$session}%'";
}
}
$hall_no = '0';
$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 and cd.fcollcode = cs.fcollcode
inner join degree dd on cd.fdegree=dd.fdegree and dd.fexamno=cd.fexamno
inner join timetable t on s.fqpcode = t.fqpcode
and t.fyear = cd.fyear
and t.fexamtype = cd.fexamtype
WHERE t.fdate ='{$frm_date}'
AND IFNULL(cd.fpassmth,'') = ''
AND cd.fyear = '{$year}'
and cd.fexamtype = '{$examtype}'
AND cd.FPRESENT='P'
{$sectionvalue}
AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00'
and cs.fcntrcode = '{$collcode}'
and cs.fdegree in(select distinct fdegree from degree where fdeggrp = '{$deggrp}')
GROUP BY t.fdate";
$results1 = $aobj_context->mobj_db->GetRow($query1);
$reg_cnt = $results1['reg_cnt'];
$query1 = "select sum(fcapacity) as fcapacity from masroom where
fcollcode = '{$collcode}' $cond";
$results1 = $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 $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
return;
}
$query = "update $canddet cd, subject s, timetable t
set cd.fqpcode1 = t.fqpcode, FHALLNO = NULL,fslno = NULL
where cd.fdegree = s.fdegree and cd.fexamno = s.fexamno
and ifnull(cd.fpassmth,'') = '' and cd.fpresent = 'P'
and s.fqpcode = t.fqpcode
and cd.fyear = t.fyear and cd.fexamtype = t.fexamtype
and cd.fregno in (select fregno from $candsum where fcntrcode = '{$collcode}')
and cd.fsubcode = s.fsubcode {$sectionvalue}
and cd.fdegree in(select distinct fdegree from degree where fdeggrp = '{$deggrp}')
AND cd.fyear = '{$year}'
and cd.fexamtype = '{$examtype}'
and t.fdate = '{$frm_date}'";
$rst1 = $aobj_context->mobj_db->Execute($query);
$rows_affected = $aobj_context->mobj_db->affected_rows();
$query = "update masroom set fbalroomcnt = fcapacity where fcollcode = '{$collcode}'
$cond";
$rst1 = $aobj_context->mobj_db->Execute($query);
$cnd = "and ifnull(ab.fabstype,'') <> 'QpM'";
if($funivcode == '049' || $funivcode == '052' || $funivcode == '021' || $funivcode == '055')
$cnd = "";
$query = "SELECT COUNT(DISTINCT cd.FREGNO) AS reg_cnt,s.FQPCODE,t.fdate AS FDOE,s.fsubcode
FROM $canddet cd INNER JOIN subject s ON s.fdegree = cd.fdegree
AND s.fexamno = cd.fexamno AND s.FSUBCODE = cd.FSUBCODE and cd.fqpcode1 = s.fqpcode
INNER JOIN $candsum cs ON cs.FREGNO = cd.FREGNO AND cd.FDEGREE=cs.FDEGREE
inner join timetable t on s.fqpcode = t.fqpcode
and t.fyear = cd.fyear
and t.fexamtype = cd.fexamtype
left join absent ab on ab.fregno = cd.fregno
WHERE t.fdate ='{$frm_date}'
AND IFNULL(cd.fpassmth,'') = '' AND cd.FPRESENT='P' {$sectionvalue}
AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00'
and cs.fcntrcode = '{$collcode}'
AND cd.fyear = '{$year}'
and cd.fexamtype = '{$examtype}'
{$cnd}
and ifnull(s.fqpcode,'') <> ''
and cs.fdegree in(select distinct fdegree from degree where fdeggrp = '{$deggrp}')
GROUP BY s.FQPCODE ORDER BY reg_cnt DESC,s.fsession,s.FQPCODE";
$results = $aobj_context->mobj_db->GetAll($query);
$k = 1;
foreach($results as $ak=>$value)
{
$reg_cnt = $value['reg_cnt'];
$qpcode = $value['FQPCODE'];
$query2 ="SELECT * FROM masroom
WHERE fcollcode = '{$collcode}' $cond
and fcapacity > 0
order by froomno";
$restults = $aobj_context->mobj_db->GetAll($query2);
foreach($restults as $key => $value)
{
if($value['fbalroomcnt'] <= 0)
continue;
if($value['fmaxqpcnt'] == 0)
{
$value['fmaxqpcnt'] = 1;
}
$capacity = $value['fcapacity'];
$studperqp = round($value['fcapacity'] / $value['fmaxqpcnt']);
$balroomcnt = $value['fcapacity'] - $studperqp;
if($reg_cnt < $studperqp)
$studperqp = $reg_cnt;
if($value['fbalroomcnt'] <= $studperqp)
$studperqp = $value['fbalroomcnt'];
if($funivcode == '055')
$regorder = "ifnull(cd.fsorder,'01'),cd.fdegree,cd.fregno";
else
$regorder = "cd.fregno";
if($funivcode == '049')
{
if($session == 'N1' || $session == 'N2')
$regorder = "cd.fdegree,cd.fregno";
else
$regorder = "cd.fregno";
}
$query1 = "SET SESSION group_concat_max_len=10000000";
$res9 = $aobj_context->mobj_db->Execute($query1);
$query = "select group_concat(distinct concat(\"'\",cd.FREGNO,\"'\") order by $regorder) as fregno
from $canddet cd inner join $candsum cs on cd.fregno = cs.fregno
inner join subject s ON s.fdegree = cd.fdegree
AND s.fexamno = cd.fexamno AND s.FSUBCODE=cd.FSUBCODE
and s.fqpcode = cd.fqpcode1
inner join timetable t on s.fqpcode = t.fqpcode
and t.fyear = cd.fyear
and t.fexamtype = cd.fexamtype
left join absent ab on ab.fregno = cd.fregno
where cd.fqpcode1 = '{$qpcode}'
and cd.FPRESENT = 'P' and ifnull(cd.fpassmth,'') = ''
and ifnull(cd.FHALLNO,'') = ''
AND cd.fyear = '{$year}'
and cd.fexamtype = '{$examtype}'
{$cnd}
and cs.fcntrcode = '{$collcode}'
order by {$regorder}
limit {$studperqp}";
//var_dump($query);
$rst3 = $aobj_context->mobj_db->GetRow($query);
$regarr = explode(',',$rst3['fregno']);
$regnoin = array_slice($regarr,0,$studperqp);
$regnoin = implode(',',$regnoin);
$query = "update $canddet set FHALLNO = '{$value['froomno']}'
where fregno in ({$regnoin}) and fqpcode1 = '{$qpcode}'
and FPRESENT = 'P' and ifnull(fpassmth,'') = ''";
$rst1 = $aobj_context->mobj_db->Execute($query);
$rows_affected = $aobj_context->mobj_db->affected_rows();
if($rows_affected)
{
$query = "update masroom set fbalroomcnt = ({$value['fbalroomcnt']} - $rows_affected)
where froomno = '{$value['froomno']}'
and fcollcode = '{$collcode}'";
$rst1 = $aobj_context->mobj_db->Execute($query);
$insert = " insert into room_allotment(FCOLLCODE,FQPCODE,FHALLNO,FCAPACITY,FLOGNAME,FLOGDATE,FDOE,FSESSION,FORDER )
values ('{$collcode}','{$qpcode}' ,'{$value['froomno']}','{$rows_affected}','{$log_name}',now(),{date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d')},'{$session}','{$k}')";
//$lobj_insert = $this->aobj_context->mobj_db->Execute($insert);
$insert = " insert into room_allotment(FCOLLCODE,FQPCODE,FHALLNO,FCAPACITY,FLOGNAME,FLOGDATE,FDOE,FSESSION,FORDER )
values ('{$collcode}','{$hall_arr[$k]['code']}' ,'{$hall_arr[$k]['blockno']}','{$hall_arr[$k]['alloted']}','{$fuser}',now(),'{$frm_date}','{$session}','{$k}')
ON DUPLICATE KEY UPDATE
FCOLLCODE = '{$collcode}',
FQPCODE = '{$hall_arr[$k]['code']}',
FHALLNO = '{$hall_arr[$k]['blockno']}',
FCAPACITY = '{$hall_arr[$k]['alloted']}',
FLOGNAME = '{$fuser}',
FLOGDATE = now(),
FDOE = '{$frm_date}',
FSESSION = '{$session}',
FORDER = '{$k}'";
// var_dump($insert);die();
$lobj_insert = $aobj_context->mobj_db->Execute($insert);
}
else
{
break;
}
}
$k++;
}
if($alternative == 'T')
{
}else
{
if($funivcode == '033')
{
$teacharry = [];
$query = "select distinct fteachcode from roominvig where fsession = '{$session}' and fdate = date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d')";
$res1 = $aobj_context->mobj_db->GetAll($query);
foreach($res1 as $val)
{
array_push($teacharry,$val['fteachcode']);
}
}
$query = "SELECT distinct cd.fhallno
FROM $canddet cd INNER JOIN subject s ON s.fdegree = cd.fdegree
AND s.fexamno = cd.fexamno AND s.FSUBCODE = cd.FSUBCODE and cd.fqpcode1 = s.fqpcode
INNER JOIN $candsum cs ON cs.FREGNO = cd.FREGNO
inner join timetable t on s.fqpcode = t.fqpcode
and t.fyear = cd.fyear
and t.fexamtype = cd.fexamtype
WHERE t.fdate = 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 cd.fyear = '{$year}'
and cd.fexamtype = '{$examtype}'
and cs.fcntrcode = '{$collcode}'
and ifnull(s.fqpcode,'') <> ''
and cd.fdegree in(select distinct fdegree from degree where fdeggrp = '{$deggrp}')
order by cd.fhallno";
//var_dump($query);
$results = $aobj_context->mobj_db->GetAll($query);
$roomprifxarry = ["A","B","C","D",'E',"F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","AA","AB",
"AC","AD",'AE',"AF","AG","AH","AI","AJ","AK","AL","AM","AN","AO","AP","AQ","AR","AS","AT","AU","AV","AW","AX","AY","AZ"];
$x = 0;
foreach($results as $value)
{
$qrypre = "select fprefix,fcapacity from masroom where fcollcode = '{$collcode}'
and froomno = '{$value['fhallno']}'";
$resqrypre = $this->aobj_context->mobj_db->GetRow($qrypre);
$teacode = $teacharry[$x];
$roomprifix = $resqrypre['fprefix'];
$fcapacity = ($resqrypre['fcapacity']/2);
$lprix = 3;
if($x >25)
$lprix =2;
if($funivcode == '033' || $funivcode == '052')
{
$query1 = "SET SESSION group_concat_max_len=10000000";
$res9 = $aobj_context->mobj_db->Execute($query1);
$query = "SELECT distinct s.fqpcode,cd.fdegree,cd.fqpcode1,cd.fcollcode,cd.fexamno, count(distinct cd.fregno) as cnt,
group_concat(distinct cd.fregno order by {$regorder}) as reg
FROM $canddet cd INNER JOIN subject s ON s.fdegree = cd.fdegree
AND s.fexamno = cd.fexamno AND s.FSUBCODE = cd.FSUBCODE and cd.fqpcode1 = s.fqpcode
INNER JOIN $candsum cs ON cs.FREGNO = cd.FREGNO
inner join timetable t on s.fqpcode = t.fqpcode
and t.fyear = cd.fyear
and t.fexamtype = cd.fexamtype
WHERE t.fdate = '{$frm_date}'
AND IFNULL(cd.fpassmth,'') = '' AND cd.FPRESENT='P' {$sectionvalue}
AND IFNULL(cs.FRECPTDATE,'0000-00-00')<>'0000-00-00'
and cs.fcntrcode = '{$collcode}'
AND cd.fyear = '{$year}'
and cd.fexamtype = '{$examtype}'
and ifnull(s.fqpcode,'') <> ''
and cd.fhallno = '{$value['fhallno']}'
and cd.fdegree in(select distinct fdegree from degree where fdeggrp = '{$deggrp}')
group by fqpcode
order by cnt desc,cd.fhallno";
//var_dump($query);
$res = $aobj_context->mobj_db->GetAll($query);
$a =1;
$b =2;
$i =1;
$r = 1;
$y =1;
$x = 1;
foreach($res as $val)
{
$fdegree = $val['fdegree'];
$fqpcode1 = $val['fqpcode1'];
$fexamno = $val['fexamno'];
$reg = $val['reg'];
$regdet = explode(",",$reg);
foreach($regdet as $ereg)
{
$regno = $ereg;
if($funivcode == '052')
{
if($x <= $fcapacity)
{
$slno = 'A'.$x;
}
else
{
$slno = 'B'.$y;
$y++;
}
$update = "update $canddet set fslno = '{$slno}'
where fqpcode1 = '{$fqpcode1}'
and fexamno = '{$fexamno}'
and fregno = '{$regno}'";
$res1 = $aobj_context->mobj_db->Execute($update);
$x++;
}
else
{
if(( $i == 1 && $r <= $fcapacity ))
$slno = $roomprifix.str_pad($a, $lprix, "0",STR_PAD_LEFT);
else
$slno = $roomprifix.str_pad($b, $lprix, "0",STR_PAD_LEFT);
$update = "update $canddet set fslno = '{$slno}'
where fqpcode1 = '{$fqpcode1}'
and fexamno = '{$fexamno}'
and fregno = '{$regno}'";
$res1 = $aobj_context->mobj_db->Execute($update);
if($i==1 && $r <= $fcapacity)
$a = $a+2;
else
$b = $b+2;
$r++;
}
}
$i++;
}
//die();
}
else
{
if($funivcode == '055')
{
$query = "update $canddet x, (select right(concat('000',@a:=@a+1),3) as fslno, fregno, fqpcode1, fhallno
from (select cd.fdegree, cd.fcollcode,
cd.fregno,cd.fqpcode1, cd.fhallno from $canddet cd, subject s, $candsum cs
where s.fdegree = cd.fdegree
AND s.fexamno = cd.fexamno AND s.FSUBCODE = cd.FSUBCODE
and cd.fqpcode1 = s.fqpcode and cs.FREGNO = cd.FREGNO AND cd.FDEGREE=cs.FDEGREE
and cd.fcollcode = cs.fcollcode
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 cd.fhallno = '{$value['fhallno']}'
and cs.fcntrcode = '{$collcode}'
and ifnull(s.fqpcode,'') <> ''
order by cd.fqpcode1,RAND(),fregno) b, (SELECT @a:= '000') AS a) y
set x.fslno = y.fslno
where x.fqpcode1 = y.fqpcode1
and x.fhallno = y.fhallno
and x.fregno = y.fregno";
}else
{
$query = "update $canddet x, (select right(concat('000',@a:=@a+1),3) as fslno, fregno, fqpcode1, fhallno
from (select cd.fdegree, cd.fcollcode,
cd.fregno,cd.fqpcode1, cd.fhallno from $canddet cd, subject s, $candsum cs
where s.fdegree = cd.fdegree
AND s.fexamno = cd.fexamno AND s.FSUBCODE = cd.FSUBCODE
and cd.fqpcode1 = s.fqpcode and cs.FREGNO = cd.FREGNO
and cd.fcollcode = cs.fcollcode
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 cd.fhallno = '{$value['fhallno']}'
and cs.fcntrcode = '{$collcode}'
and ifnull(s.fqpcode,'') <> ''
order by cd.fqpcode1,fregno) b, (SELECT @a:= '000') AS a) y
set x.fslno = y.fslno
where x.fqpcode1 = y.fqpcode1
and x.fhallno = y.fhallno
and x.fregno = y.fregno";
}
$lobj_insert = $aobj_context->mobj_db->Execute($query);
}
//$query = "";
//var_dump($query); and cd.fregno in(select distinct fregno from student where fcollcode = '{$this->collcode}' order by fregno)
$x++;
}
$query = "delete from anscapt where fdoe = date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d') and fcntrcode = '{$collcode}'
and ifnull(fansbookno,'') = ''";
$lobj_update = $aobj_context->mobj_db->Execute($query);
$query = "insert ignore 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 = date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d')
and b.fcntrcode = '{$collcode}'";
$lobj_update = $aobj_context->mobj_db->Execute($query);
$insert = " insert ignore into room_allotment(FCOLLCODE,FQPCODE,FHALLNO,FCAPACITY,FLOGNAME,FLOGDATE,FDOE,FSESSION )
select b.fcntrcode, s.fqpcode,a.fhallno, '26','-',now(),s.fdoe, s.fsession
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 = date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d')
and b.fcntrcode = '{$collcode}'";
$lobj_insert = $aobj_context->mobj_db->Execute($insert);
}
echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success");
}
// $exammonth = $aobj_context->mobj_data["exammonth"];
// $deggrp=$aobj_context->mobj_data['deggrp'];
// $session=$aobj_context->mobj_data['session'];
// $funivcode=$aobj_context->mobj_data['univcode'];
// $collcode=$aobj_context->mobj_data['collcode'];
// $dates=$aobj_context->mobj_data['dates'];
// $log_name=$aobj_context->mobj_data['user'];
// // 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 = -1;
// 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($funivcode == '027' || $funivcode == '003' || $funivcode == '023' || $funivcode == '041' || $funivcode == '035' || $funivcode == '050' || $funivcode == '008' || $funivcode == '052' || $funivcode == '051')
// $mpcnd = "";
// if($funivcode == '050')
// $orderby = "ORDER BY s.fsession,s.FQPCODE,s.fsession";
// else
// $orderby = "ORDER BY reg_cnt DESC,s.fsession,s.FQPCODE";
// for($k=0;$k<=count($hall_arr);$k++)
// {
// $newqp = $hall_arr[$k]['code'];
// 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($funivcode == '046')
// {
// $order = "st.fayear,cd.FREGNO";
// }
// else
// {
// $order = "cd.fregno";
// }
// $query1 = "SET SESSION group_concat_max_len=10000000";
// $results = $aobj_context->mobj_db->Execute($query1);
// if($deggrp == 'BED' && ($funivcode == '027' || $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]['code']}'
// 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='{$collcode}' AND TRIM(s.FQPCODE)='{$hall_arr[$k]['code']}'
// 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";
// }
// $results = $aobj_context->mobj_db->GetRow($query);
// }
// if($hall_arr[$j]['remain'] > 0)
// {
// $hall_arr[$k]['capacity']= $hall_arr[$j]['remain'];
// }
// /*$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);
// */
// $insert = " insert into room_allotment(FCOLLCODE,FQPCODE,FHALLNO,FCAPACITY,FLOGNAME,FLOGDATE,FDOE,FSESSION,FORDER )
// values ('{$collcode}','{$hall_arr[$k]['code']}' ,'{$hall_arr[$k][blockno]}','{$hall_arr[$k]['capacity']}','{$log_name}',now(),'{$dates}','{$session}','{$k}')
// ON DUPLICATE KEY UPDATE
// FCOLLCODE = '{$collcode}',
// FQPCODE = '{$hall_arr[$k]['code']}',
// FHALLNO = '{$hall_arr[$k]['blockno']}',
// FCAPACITY = '{$hall_arr[$k]['capacity']}',
// FLOGNAME = '{$log_name}',
// FLOGDATE = now(),
// FDOE = '{$dates}',
// FSESSION = '{$session}',
// FORDER = '".($k + 1)."'";
// $lobj_insert = $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]['blockno']}'
// where
// $canddet.FCOLLCODE = $candsum.FCOLLCODE
// and $canddet.FREGNO = $candsum.FREGNO
// and $candsum.FCNTRCODE='{$collcode}'
// and INSTR($candsum.fhtenable,$canddet.fexamno) >0
// and concat($canddet.fdegree,$canddet.fsubcode,$canddet.FREGNO) in({$regnoin})";
// $lobj_update = $aobj_context->mobj_db->Execute($update);
// }
// $i = $i+$hall_arr[$k]['capacity'];
// $oldqp = $hall_arr[$k]['code'];
// $j++;
// }
// if($lobj_update)
// {
// // var_dump($hall_arr);
// $query = "delete from anscapt where fdoe = '{$dates}' and fcntrcode = '{$collcode}'
// and ifnull(fansbookno,'') = ''";
// $lobj_update = $aobj_context->mobj_db->Execute($query);
// $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 = '{$dates}' and b.fcntrcode = '{$collcode}'";
// $lobj_update = $aobj_context->mobj_db->Execute($query);
// $data="Update Successfully.";
// echo $aobj_context->mobj_output->ToJSONEnvelope($data,0,"success");
// }
// else
// {
// $data="Failed";
// echo $aobj_context->mobj_output->ToJSONEnvelope($data,-1,"failure");
// }
?>
|