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.70.239
<?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.fdeggrp as value, dg.fdescpn as label
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 =date_format(STR_TO_DATE('{$doe}', '%d/%m/%Y'),'%Y-%m-%d')";
$rst2 = $aobj_context->mobj_db->getAll($query);
$query = "SELECT distinct CONCAT(d.fyear,'*',d.fexamtype,'*',t.fdeggrp,'*',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 =date_format(STR_TO_DATE('{$doe}', '%d/%m/%Y'),'%Y-%m-%d')
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} and s.fdoe =DATE_FORMAT(STR_TO_DATE('{$doe}', '%d/%m/%Y'),'%Y-%m-%d')
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 SaveRoomAllotmentDatewise($aobj_context){
session_start();
$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== 'select')
{
$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}%'";
}
}
$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' and s.fsession like '{$session}%'
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 = '{$deggrp}'
GROUP BY d.fdeggrp,s.FQPCODE
{$orderby}";
$results = $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 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
INNER JOIN timetable t ON s.fqpcode = t.fqpcode AND cd.fyear = t.fyear AND cd.fexamtype = t.fexamtype
AND t.fdeggrp = d.fdeggrp
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 cs.fcntrcode = '{$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 = $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);
$hall_no = [];
$roomIndex = 0;
for ($subjectIndex = 0; $subjectIndex < count($results); $subjectIndex++) {
$subjectData = $results[$subjectIndex];
$qpcode = $subjectData["FQPCODE"];
$subjectname = $subjectData["FQPCODE1"];
$total = $subjectData["reg_cnt"];
$remain = $total;
$remaincapacity = 0;
while ($remain > 0 && $roomIndex < count($rst2)) {
if ($remaincapacity === 0) {
$roomDetails = $rst2[$roomIndex]["roomname"];
$rooms = explode("->", $roomDetails);
$roomCapacity = (int)$rooms[2];
$remaincapacity = $roomCapacity;
}
$allotted = min($remain, $remaincapacity);
$remaincapacity -= $allotted;
$hall_arr = [
"blockno" => $rooms[0],
"blockname" => $rooms[1],
"capacity" => (int)$rooms[2],
"code" => $qpcode,
"subjectname" => $subjectname,
"total" => $total,
"alloted" => $allotted,
"remain" => $remain - $allotted,
];
$hall_no[] = $hall_arr;
$remain -= $allotted;
if ($remaincapacity === 0) {
$roomIndex++;
}
}
}
$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 =date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d')
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 = date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d')";
$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 =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 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 = 0;
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}";
$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 = '{$hall_no[$k]['blockno']}'
where fregno in ({$regnoin}) and fqpcode1 = '{$hall_no[$k]['code']}'
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 = '{$hall_no[$k]['blockno']}'
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}','{$hall_no[$k]['code']}' ,'{$hall_no[$k]['blockno']}','{$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_no[$k]['code']}' ,'{$hall_no[$k]['blockno']}','{$hall_no[$k]['alloted']}','{$fuser}',now(),'{$frm_date}','{$session}','{$k}')
ON DUPLICATE KEY UPDATE
FCOLLCODE = '{$collcode}',
FQPCODE = '{$hall_no[$k]['code']}',
FHALLNO = '{$hall_no[$k]['blockno']}',
FCAPACITY = '{$hall_no[$k]['alloted']}',
FLOGNAME = '{$fuser}',
FLOGDATE = now(),
FDOE = date_format(STR_TO_DATE('{$frm_date}', '%d/%m/%Y'),'%Y-%m-%d'),
FSESSION = '{$session}',
FORDER = '".($k + 1)."'";
$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 = $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 = 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 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");
}
?>
|