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


Current Path : /proc/thread-self/root/var/www/html/admission/src/
Upload File :
Current File : //proc/thread-self/root/var/www/html/admission/src/qp_setter.php

<?php
// require_once("/var/www/html/aws/aws-autoloader.php");
// use Aws\S3\S3Client;
include("/var/www/config.php");

function examDate($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $type = $aobj_context->mobj_data["type"];

    if($type === "old"){
        $query = "select distinct concat(dg.fdeggrp, '*', d.fyear, '-',d.fexamtype) as fexamyear, 
        concat(p.fdescpn, '-' , d.fexamdate) as fdesexam 
                        from qpseterdet q 
                        inner join degexam d on q.fyear = d.fyear and q.fexamtype = d.fexamtype
                        inner join degree dg on d.fdegree = dg.fdegree and dg.fexamno = d.fexamno
                        inner join deggrp p on p.fdeggrp = dg.fdeggrp
                        where ifnull(fqpfilepath,'') <> ''
                        group by dg.fdeggrp,q.fyear,q.fexamtype";
        
    }else{
        $query = "select concat(fdeggrp,'*',fyear, '-', fexamtype) as fexamyear, concat(fdescpn, '-' , fexamdate)as fdesexam
                  from deggrp where ifnull(fdeleted, '') <> 'T'";
    }
    
    $result = $aobj_context->pobj_db->GetAll($query);

    if(count($result) > 0)
    {
        echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No data Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }
}

function getBoardDet($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $exam = $aobj_context->mobj_data["exam"];
    $examarray  = explode("*",$exam);
    $deggrp = $examarray[0];
    
    $query = "select distinct fboardcode, fboardname from masboard m inner join subject s on m.fboardcode = s.fboard
    inner join degree d on s.fdegree = d.fdegree 
    where ifnull(m.fdeleted,'') <>'T'
    and d.fdeggrp = '{$deggrp}'";
    
    $result = $aobj_context->pobj_db->GetAll($query);

    if(count($result) > 0)
    {
        echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No Board Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }
}

function getBoardSubj($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $board = $aobj_context->mobj_data["board"];
    $exam = $aobj_context->mobj_data["exam"];
    $examarray  = explode("*",$exam);
    $deggrp = $examarray[0];

    if($board === "All"){
        $boardCond = "";
    }else{
        $boardCond = "and s.fboard = '{$board}'";
    }
    
    $query = "select s.fqpcode, concat(s.fsubname,' ( ',s.fsubshort,' )', ' - ', s.fssubname)  as fsubname 
    from subject s inner join degree d on s.fdegree = d.fdegree and 
    s.fexamno = d.fexamno
    where ifnull(s.fqpcode,'') <> '' $boardCond
    and d.fdeggrp = '{$deggrp}'";

    $result = $aobj_context->pobj_db->GetAll($query);
   
    if(count($result) > 0)
    {
        echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No QP Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }

}

function getTeachDet($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $exam = $aobj_context->mobj_data["exam"];
    $board = $aobj_context->mobj_data["board"];
    $subj = $aobj_context->mobj_data["subj"];
    $examarray  = explode("*",$exam);
    $deggrp = $examarray[0];
    $exam = explode("-", $examarray[1]);
    $fyear = $exam[0];
    $fexamtype = $exam[1];

    if($board === "All"){
        $boardCond = "";
    }else{
        $boardCond = "and qp.fboard = '{$board}'";
    }
    
    $query = "select ifnull(m.fteachcode,'') as fteachcode,ifnull(m.fteachname,'') as fteachname,
    ifnull(m.fmobile,'') as fmobile,ifnull(m.femail,'') as femail,
    if(ifnull(qp.fteachcode,'') = '','F','T') as status
    from masteach m left join qpseter qp on m.fteachcode = qp.fteachcode 
	and qp.fqpcode='{$subj}' and qp.fyear = '{$fyear}' and qp.fexamtype = '{$fexamtype}'
    and qp.fqpcode in(select distinct s.fqpcode from subject s inner join degree d on s.fdegree = d.fdegree and s.fexamno = d.fexamno
    where d.fdeggrp = '{$deggrp}')
	$boardCond
    group by m.fteachcode";

    $result = $aobj_context->pobj_db->GetAll($query);
    
    if(count($result) > 0)
    {
        echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No data Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }

}

function saveQPSeter($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $mob = $aobj_context->mobj_data["mob"];
    $req = $aobj_context->req_body;
    $data = $req['data'];
    $table = $data['table'];
    $board = $data['board'];
    $subj = $data['subj'];
    $exam = $data['exam'];
    $spl = explode('*',$exam);
    $split = explode('-',$spl[1]);
    $fyear = $split[0];
    $fexamtype = $split[1];
    
    $date = date('Y-m-d H:i:s');
    
    $selteach = array();
    $noteach = array();

    
    foreach ($table as $k => $v) {
       
        if($v['status'] == 'T' )
            array_push($selteach, $v['fteachcode']);
        else
            array_push($noteach, $v['fteachcode']);
    }
  
    foreach($selteach as $t=> $i ){
        $query = "insert into qpseter (fyear,fexamtype,fboard,fqpcode,fteachcode,fcreated,fcreateduser)
        value('{$fyear}','{$fexamtype}','{$board}','{$subj}','{$i}',now(),'{$mob}')";
    
        $result = $aobj_context->pobj_db->Execute($query);
    }

    

    foreach($noteach as $t=> $i ){
        $query = "DELETE FROM qpseter WHERE fteachcode='{$i}'
        and fqpcode = '{$subj}' and fboard = '{$board}' 
        and fyear = '{$fyear}' and fexamtype = '{$fexamtype}'
        and ifnull(fstatus,'') <> 'T'";
        $result = $aobj_context->pobj_db->Execute($query);
    }
    
    if (!$result) {
        $arr['msg'] = 'Updation Failed';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr, -1, "failure");
        return;
    }
    
    if($result)
    {
    echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"Udated Success"); 
    }
    else
    {
    $arr['msg'] = 'No Data found';
    echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure"); 	
    }	
}

function getSelTeachDet($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $board = $aobj_context->mobj_data["board"];
    $subj = $aobj_context->mobj_data["subj"];
    $exam = $aobj_context->mobj_data["exam"];

    if($board === "All"){
        $boardCond = "";
        $boardcon= "";
    }else{
        $boardCond = "and qp.fboard = '{$board}'";
        $boardcon = "and s.fboard = qp.fboard";
    }

    $examarray  = explode("*",$exam);
    $deggrp = $examarray[0];
    $exam = explode("-", $examarray[1]);
    $fyear = $exam[0];
    $fexamtype = $exam[1];

    $query = "select m.fteachcode,m.fteachname,m.fmobile,m.femail,ifnull(fnoqp,'1') as fnoqp,
        if(ifnull(flastdate,'') = '','',date_format(flastdate,'%d/%m/%Y')) as flastdate,
        ifnull(qp.fappointed,'')  as status,ifnull(qp.femailstatus,'') as femailstatus
        from masteach m inner join qpseter qp on m.fteachcode=qp.fteachcode
        inner join subject s on s.fqpcode = qp.fqpcode and s.fqpcode='{$subj}'
        $boardcon
        where qp.fqpcode='{$subj}' $boardCond
        and qp.fqpcode in(select distinct s.fqpcode from subject s inner join degree d on s.fdegree = d.fdegree and s.fexamno = d.fexamno
        where d.fdeggrp = '{$deggrp}')
        and qp.fyear = '{$fyear}'
        and qp.fexamtype = '{$fexamtype}'
        group by m.fteachcode";

    $result = $aobj_context->pobj_db->GetAll($query);
    
    if(count($result) > 0)
    {
        echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No data Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }

}

function saveSelQPSeter($aobj_context){
    include("sendGridMail.php");
    include("error_log.php");
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $mob = $aobj_context->mobj_data["mob"];
    $user = $aobj_context->mobj_data["user"];
    $exam = $aobj_context->mobj_data["exam"];
    $board = $aobj_context->mobj_data["board"];
    $subj = $aobj_context->mobj_data["subj"];
    $collcode = $aobj_context->mobj_data["collcode"];
    $mobile = $aobj_context->mobj_data["mobile"];
    $table = json_decode($aobj_context->mobj_data["data"], true);
   
    $spl = explode('*',$exam);
    $split = explode('-',$spl[1]);
    $fyear = $split[0];
    $fexamtype = $split[1];
    
    $date = date('Y-m-d H:i:s');
    $onldate = date('d-m-Y');

    $cond = '';
    if($univcode == '030'){
        $cond = ',fqpsettermail';
    }

    $unishort = "select funivname, ffolder, pdf_logo_path $cond  from control";
    $resunishort = $aobj_context->pobj_db->GetRow($unishort);
 
    $univname = $resunishort['funivname'];
    $univshort = strtoupper($resunishort['ffolder']);
    $logopath = $resunishort['pdf_logo_path'];
    $fqpsettermail = $resunishort['fqpsettermail'];

    $query = "select ifnull(FQPPATREN,'') as FQPPATREN from subject 
    where fqpcode = '{$subj}'";
    $res = $aobj_context->pobj_db->GetRow($query);
    
    if($res['FQPPATREN'] == '')
    {
        $arr['msg'] = 'QP Pattren and Syllabus not uploaded for QP Code '.$subj;
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr, -1, "failure");
        return;
    }


    $query1 = "select distinct s.fdegree,s.fqpcode,s.fsubname,dg.fexamdate,d.fexamname,d.fdescpn,s.fsubshort  
    from subject s 
    inner join degree d on s.fdegree = d.fdegree and s.fexamno = d.fexamno
    inner join qpset_deggrp dg on dg.fdeggrp = d.fdeggrp
    where fqpcode = '{$subj}'";
  

    $res1 = $aobj_context->pobj_db->GetRow($query1);
  
    $fdegree = $res1['fdegree'];
    $fqpcode = $res1['fqpcode'];
    $fsubname = $res1['fsubname'];
    $fexamdate = $res1['fexamdate'];
    $fexamnmae = $res1['fexamname'];
    $fdescpn = $res1['fdescpn'];
    $fsubshort = $res1['fsubshort'];

    
    $truearray = array();
    $falsearray = array();
    $qparray = array();
    
    foreach ($table as $k => $v) {

        $lastdate = $v['flastdate'];
        $teachcode = $v['status'];
        $fnoqp = $v['fnoqp'];
        $fteachcode = $v['fteachcode'];
        $fteachname = $v['fteachname'];

        $spldate = explode('/',$lastdate);
        $flastdate = $spldate[2]."-".$spldate[1]."-".$spldate[0];
        
        if($univcode == '030'){
            $teachDet = "select concat(ifnull(FTITLE,''), ' ',ifnull(fteachname, ''))as fteachname, 
                     ifnull(fcollname, '')as fcollname
                     from masteach 
                     where fteachcode = '{$fteachcode}'";
        }else{
            $teachDet = "select concat(ifnull(m.FTITLE,''), ' ',ifnull(m.fteachname, ''))as fteachname, 
                     ifnull(m.fcollname, '')as fcollname, d.fdegncode, 
                     ifnull(d.fdegndesc, '')as fdegndesc
                     from masteach m inner join masdegn d on d.fdegncode = m.fdegncode 
                     where fteachcode = '{$fteachcode}'";
        }         
        $teachDet1 = $aobj_context->pobj_db->GetRow($teachDet);
        
        $teachname = $teachDet1['fteachname'];
        $colladd = $teachDet1['fcollname'];
        $degn = $teachDet1['fdegndesc'];
       
        if($v['status'] == 'F' )
        {
            $query = "update qpseter set fappointed = 'F', fappointdate = now(),
             fappointuser = '{$mob}', femailstatus = 'F'
            where fteachcode = '{$fteachcode}'
            and fqpcode = '{$subj}' and fyear = '{$fyear}' and fexamtype = '{$fexamtype}'";
          
            $result = $aobj_context->pobj_db->Execute($query);
           
            $remarks = "Teacher ". $fteachcode. " removed for the Qp Code ".$fqpcode." Removed User: ".$mob;
            $res = error_logs($aobj_context, $univcode, $remarks, $collcode, "QP Setter", $mobile, $mobile);

        }else if($v['status' ] == 'T')
        {
            
            $query = "update qpseter set fappointed = 'T', fappointdate = '{$date}', femailstatus = '{$v['emailstatus']}', 
            fappointuser = '{$mob}',fnoqp = '{$fnoqp}' ,ffrommdate= now(),flastdate = '{$flastdate}'
            where fteachcode = '{$fteachcode}'
            and fqpcode = '{$subj}' and fyear = '{$fyear}' and fexamtype = '{$fexamtype}'";
            
            $result = $aobj_context->pobj_db->Execute($query);
            
            $remarks = "Teacher ". $fteachcode. " Added for the Qp Code ".$fqpcode." No. of Sets: ".$fnoqp." Last Date: ".$flastdate;

            $res = error_logs($aobj_context, $univcode, $remarks, $collcode, "QP Setter", $mobile, $mobile);

            if($v['emailstatus'] == 'T'){
                $fteach = $v['fteachcode'];
            }else{
                $fteach = '';
            }

            if($fteach === ''){

            }else{
                $email = "select femail,fmobile from masteach where fteachcode = '{$fteach}'";
            }
            
            $emailres = $aobj_context->pobj_db->GetRow($email);
            
            $emailid = $emailres['femail'];
            $mobile = $emailres['fmobile'];
            
            for($i = 1;$i<=$fnoqp;$i++)
            {
                $query = "INSERT ignore INTO qpseterdet (fyear, fexamtype, fqpcode, fteachcode, fset)
                values('{$fyear}','{$fexamtype}','{$subj}','{$fteachcode}','{$i}')";
                $result = $aobj_context->pobj_db->Execute($query);

                $remarks = "Teacher ". $fteachcode. " set for the Qp Code ".$fqpcode;
                $res = error_logs($aobj_context, $univcode, $remarks, $collcode, "QP Setter", $mobile, $mobile);
            }

            if($univcode == "051"){
                $logo_path = "img/dyp_elogo.jpeg";
            }else if($univcode == "030"){
                $logo_path = $logopath;
            }

            if($univcode == '030'){
                $logo = "https://universitysolutions.in/".$resunishort['ffolder']. '/'.$logopath;
            }else{
                $logo = "https://college.universitysolutions.in/".$resunishort['ffolder']. '/'.$logo_path;
            }
          
            if($univcode=="030" || $univcode=="098"){
                $message="<html>";
                $message.="<body>";
                $message.="<style>";		
                $message.=".mail_tbl td{text-align:left; padding:2px; font-size:12px; 
                    font-family: Verdana, Arial, Helvetica, sans-serif;}";	
                $message.="</style>";
                $message.="<center><img src='{$logo}' height='100px' width='200px'/></center>";
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-align:center; color:red'>
                <u>STRICTLY CONFIDENTIAL </u></p>";
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                From</p>";
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                <b>Dr. Beena G</b></p>";
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Controller of Examinations</p>";
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-align:right'>Date.:"." $onldate "."</p>";
    
                $message.="<p>To,<br></p>";
                $message.="<p><b>"."$teachname"."</b><br></p>";

                // $message.="<p style='line-height: 0;'>"."$teachname".",<br></p>";
                if($degn != ""){
                    $message.="<p style='line-height: 2;'>"."$degn".",<br></p>";
                }
                // if($colladd != ""){
                //     $message.="<p style='line-height: 0;'>"."$colladd".",<br></p>";
                // }    
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Dear Sir/Madam,</p>";
                
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                <b>Subject: Appointment as Question Paper setter for  "." $univname"." of "."$fexamdate"." Semester End Examinations.</b></p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                On the directions of the Vice-Chancellor, I am pleased to inform you of your appointment as 
                the Question paper setter for the following course. All question papers are expected to be received <b> on 
                or before "."$lastdate"."</p> </b>";

                $message .= "<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Please note that the QP portal will get auto disabled after the lastdate.</p>";
                
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                The details are as follows:</p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                <table style='width: 100%;border: 1px solid'>
                <tr style='border: 1px solid'>
                <th style='width: 17%;text-align:left;border: 1px solid'>Program</th>
                <th style='width: 33%;text-align:center;border: 1px solid'>"."$fdegree - $fdescpn"."</th>
                <th style='width: 17%;text-align:left;border: 1px solid'>Semester</th>
                <th style='width: 33%;text-align:center;border: 1px solid'>"."$fexamnmae"."</th>
                </tr>
                <tr>
                <th style='width: 17%;text-align:left;border: 1px solid'>Course code</th>
                <th style='width: 33%;text-align:center;border: 1px solid'>"."$fsubshort"."</th>
                <th style='width: 17%;text-align:left;border: 1px solid'>Course Title</th>
                <th style='width: 33%;text-align:center;border: 1px solid'>"."$fsubname"."</th>
                </tr>
                <tr>
                <th style='width: 17%;text-align:left;border: 1px solid'>No. of sets</th>
                <th style='width: 33%;text-align:center;border: 1px solid'>"."$fnoqp"."</th>
                <th style='width: 17%;text-align:left;border: 1px solid'>To be submitted on or  before</th>
                <th style='width: 33%;text-align:center;border: 1px solid'>"."$lastdate"."</th>
                </tr>
                </table>
                </p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                The question papers must be prepared as per the template provided.</p>";

                $message.="$fqpsettermail";
    
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                <b>The following details are attached:</b>
                    <ul>
                    <li>Prescribed syllabus</li>
                    <li>Question paper pattern</li>
                    </ul>
                </p>";

                $message.="<u>Remuneration details:</u>"."<br>";
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                <table style='width: 70%'>
                <tr style='text-align:center;border: 1px solid'>
                <th style='width: 20%;border: 1px solid'>Sl No</th>
                <th style='width: 60%;border: 1px solid'>Particulars</th>
                <th style='width: 20%;border: 1px solid'>Remuneration (Rs)</th>
                </tr>
                <tr style='text-align:center'>
                <th style='width: 20%;border: 1px solid'>1</th>
                <th style='width: 60%;border: 1px solid'>Question Paper setting</th>
                <th style='width: 20%;border: 1px solid'>700</th>
                </tr>
                <tr style='text-align:center'>
                <th style='width: 20%;border: 1px solid'>2</th>
                <th style='width: 60%;border: 1px solid'>Detailed solution, scheme of instruction</th>
                <th style='width: 20%;border: 1px solid'>500</th>
                </tr>
                </table>
                </p>";
    
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                <strong>The question paper needs to be prepared in the template provided and Submitted back as 
                per the timeline </strong><br></p>";
    
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                <b>Note :</b></p>";
    
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif;color:red;'>
                <ol>
                    <b>
                    <li>Kindly use font Calibri, size 12 as a standard font for all QP’s.</li>
                    <li>The QP submitted after the mentioned timeline will not be accepted.</li>
                    </b>
                </ol>
                <br>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                <b>Registration Steps are : </b>
                <ol>
                    <li style='color:red;'>State: Karnataka</li>
                    <li style='color:red;'>University : "."$univname"."</li>
                    <li style='color:red;'>Select user type as Teacher</li>
                    <li style='color:red;'>Enter Teacher code which is available in your mail</li>
                    <li style='color:red;'>Click Validate</li>
                    <li style='color:red;'>Fill details as: Enter your Email id and Password is your mobile number. Reenter the same password.</li>
                    <li style='color:red;'>Click Send OTP. You will receive the OTP on your mobile and email also.</li>
                    <li style='color:red;'>Enter OTP.</li>
                    <li style='color:red;'>After this for Login: your mobile number will be the user id and password.</li>
                    <li style='color:red;'>After Login in Question Paper setting Accept the Question Paper Request.</li>
                    <li style='color:red;'>You can see the Question Paper Pattern and Syllabus.</li>
                    <li style='color:red;'>Prepare the two separate word documents</li>
                    <ul>
                        <li style='color:red;'> Question Paper as per given pattern.</li>
                        <li style='color:red;'> Brief Answer Keys.</li>
                    </ul>
                    <li style='color:red;'>For Uploading the Question Paper, first upload the answer key then upload the question paper and click upload button. Repeat the same steps for uploading second set of question paper.</li>
                    <li style='color:red;'>Update the Bank details.</li>
                </ol>
                </p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Portal Login details are as follows.<br><br>";
                $message.="Portal Link: https://egov.universitysolutions.in/#/register"."<br>";
                $message.="Teacher Code:"." $fteachcode"."<br>";
                $message.="Mobile No.:"." $mobile"."<br></p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                In case if you have any technical issues, Kindly call 080-46966966,Ext.244 or revert to mail ru_qp.coe@reva.edu.in <br></p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Thanking You,</p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Yours Sincerely</p><br>";

                $querySign =  "select distinct s.fqpcode, d.fsignpath from degree d inner join subject s on 
                                s.fdegree = d.fdegree and s.fexamno = d.fexamno 
                                where s.fqpcode='{$fqpcode}' and ifnull(fsignpath,'')<>''";
    
                $ressign = $aobj_context->pobj_db->GetRow($querySign);
                
                $sign = $ressign['fsignpath'];
                if($univcode == '030'){
                    $signpath = "https://universitysolutions.in/".$resunishort['ffolder']."/img/".$sign;
                }else{
                    $signpath = "https://college.universitysolutions.in/".$resunishort['ffolder']."/img/".$sign;
                }
                if($sign!==NULL){
                    $message .= "<img src='{$signpath}' width='100' height='50'/>";
                    $message .= "<br/>";
                }
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Controller of Examinations<br> "." $univname"."<br>
                </p>";
    
                $message.="</body>";
                $message.="</html>";
            }else{
                $message="<html>";
                $message.="<body>";
                $message.="<style>";		
                $message.=".mail_tbl td{text-align:left; padding:2px; font-size:12px; 
                    font-family: Verdana, Arial, Helvetica, sans-serif;}";	
                $message.="</style>";
                $message.="<center><img src='{$logo}' height='100px' width='200px'/></center>";
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-align:center; color:red'>
                <u>CONFIDENTIAL</u></p>";
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Ref.: DYPU/COE/AYU/2022-23/EP/C-041.</p>";
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif; text-align:right'>Date.:"." $onldate "."</p>";

                $message.="<p>To,<br></p>";
                $message.="<p style='line-height: 0;'>"."$teachname".",<br></p>";
                if($degn != ""){
                    $message.="<p style='line-height: 2;'>"."$degn".",<br></p>";
                }
                if($colladd != ""){
                    $message.="<p style='line-height: 0;'>"."$colladd".",<br></p>";
                }
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Sub: Appointment as Question Paper Setter for the University Examination.</p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Respected Sir / Madam,</p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                I am pleased to inform you that this university has appointed you as Question Paper Setter for the following course in ".$fexamnmae." ".$fdescpn."</p>";
                
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                <table style='width: 100%;border: 1px solid'><tr><th style='border: 1px solid'>Course Code</th>
                <th style='border: 1px solid'>Course Name</th><th style='border: 1px solid'>Number of Question papers with Answer key</th></tr>
                <tr style='text-align:center'><td style='border: 1px solid'>"."$fqpcode"."</td><td style='border: 1px solid'>"."$fsubname"."</td>
                <td style='border: 1px solid'>"."$fnoqp"."</td></tr></table></p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Syllabus with Course Outcomes (CO) and Question Paper Pattern are provided. Kindly prepare question paper as per the requirements
                of COs and Blooms Taxonomy (Preferably higher cognitive levels) and indicate them at the appropriate places in the question paper along with the marks allotted.</p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Also share the brief answer key (All Sections) for all questions with proper mark split up.</p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                The Question paper and the answer key (All Sections) are to be uploaded only in the portal on or before "."$lastdate"."</p>";
                
                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Kindly submit your bank details at the portal.</p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Kindly inform your acceptance within three days of the receipt of this communication</p><br>";

                $message.="<b>Registration Steps are:</b>";
                $message.="<p>1. State: Maharashtra</p>";
                $message.="<p>2. University: D Y Patil University, Navi Mumbai</p>";
                $message.="<p>3. Select user type as Teacher</p>";
                $message.="<p>4. Enter Teacher code which is available in your mail</p>";
                $message.="<p>5. Click Validate</p>";
                $message.="<p>6. Fill details as: Enter your Email id and Password is your mobile number. Reenter the same password.</p>";
                $message.="<p>7. Click Send OTP. You will receive the OTP on your mobile and email also.</p>";
                $message.="<p>8. Enter OTP.</p>";
                $message.="<p>9. After this for Login: your mobile number will be the user id and password.</p>";
                $message.="<p>10. After Login in Question Paper setting Accept the Question Paper Request.</p>";
                $message.="<p>11. You can see the Question Paper Pattern and Syllabus.</p>";
                $message.="<p>12. Prepare the two separate word documents</p>";
                $message.= "<ul><li>Question Paper as per given pattern.</li><li>Brief Answer Keys.</li></ul>";
                $message.="<p>13. For Uploading the Question Paper, first upload the answer key then upload the question paper and click upload button. Repeat the same steps for uploading second set of question paper.</p>";
                $message.="<p>14. Update the Bank details.</p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Portal Login details are as follows.<br><br>";
                $message.="Portal Link: https://egov.universitysolutions.in/#/register"."<br>";
                $message.="Teacher Code:"." $fteachcode"."<br>";
                $message.="Mobile No.:"." $mobile"."<br></p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Kindly call to 022-30965931/32 in case if you have any technical issues.<br></p>";


                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Thanking You,</p>";

                $message.="<p style='font-size:12px; font-family: Verdana, Arial, Helvetica, sans-serif'>
                Yours Sincerely<br>";


                $querySign =  "select distinct s.fqpcode, d.fsignpath from degree d inner join subject s on 
                                s.fdegree = d.fdegree and s.fexamno = d.fexamno 
                                where s.fqpcode='{$fqpcode}' and ifnull(fsignpath,'')<>''";

                $ressign = $aobj_context->pobj_db->GetRow($querySign);
                
                $sign = $ressign['fsignpath'];

                $signpath = "https://college.universitysolutions.in/".$resunishort['ffolder']."/img/".$sign;

                if($sign!==NULL){
                    $message .= "<img src='{$signpath}' width='100' height='50'/>";
                    $message .= "<br/>";
                }
                $message.="Controller of Examinations<br>"."$univname"."<br>
                Navi Mumbai
                </p>";

                $message.="</body>";
                $message.="</html>";
            }
            
            $subject= strtoupper("$univname".": Appointment as Question Paper Setter for the University ".$fexamdate." Semester End Examination"); 
            $from = "";
          
            $resp = sendGridMail($emailid,$subject,$message,$univcode);  
         
          $qrySlt = "select fmobileno, fusertype from logisys3_comexam.masuser where fmobileno='{$mobile}'";
          $resQrySlt = $aobj_context->pobj_db->GetRow($qrySlt);

          $uType = $resQrySlt['fusertype'];
          $split = explode("*", $uType);
          foreach($split as $val){
            if($val!==""){
                $userType = $val."*";
            }
          }

          if(count($resQrySlt)>0){
            if(strpos($uType, '600')===false){
                $qry = "update logisys3_comexam.masuser set fusertype=concat('$userType', '600') 
                        where funivcode='{$univcode}' and fmobileno='{$mobile}'";
                $resQry = $aobj_context->pobj_db->GetRow($qry);
            }
          }
        }
        

    }
     
    if (!$resp) {
        $arr['msg'] = 'Updation Failed';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr, -1, "failure");
        return;
    }else
    {
        $arr['msg'] = 'Updated Success';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"Udated Success"); 
    }
}

function getQPDetails($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $teachcode = $aobj_context->mobj_data["userid"];
    
    $query = "select qp.fqpcode, concat(s.fsubname, ' - ', s.fsubshort)as fsubname, s.fvalmax,qp.fset,concat(qp.fyear,'-', qp.fexamtype)as fexam, 
    s.FQPPATREN,s.FQPSYLLABUS,s.fschpattern, ifnull(qp.fstatus, '')as fstatus
    from qpseterdet qp inner join subject s on qp.fqpcode = s.fqpcode 
    inner join degree dg on s.fdegree = dg.fdegree and dg.fexamno = s.fexamno
    inner join qpset_deggrp du on dg.fdeggrp = du.fdeggrp and qp.fyear = du.fyear and 
    du.fexamtype = qp.fexamtype
    where fteachcode = '{$teachcode}'
    group by qp.fyear, qp.fexamtype, fqpcode,fset ,fteachcode";

    $result = $aobj_context->pobj_db->GetAll($query);
   
    if(count($result) > 0)
    {
        echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No data Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }
}

// function uploadQPDet($aobj_context){
//     $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
//     $univcode = $aobj_context->mobj_data["univcode"];
//     $userid = $aobj_context->mobj_data["userid"];
//     $qpcode = $aobj_context->mobj_data["qpcode"];
//     $sets = $aobj_context->mobj_data["set"];
//     $file = basename($_FILES['File']['name']);
//     $temp = file_get_contents($_FILES['File']['tmp_name']);
    
//     $host = 'logisys.cluster-cv9maxyrxjgg.ap-south-1.rds.amazonaws.com';
//     $user = 'admin';
//     $password = 'T0g3th3r@all';

//     if($univcode == '041'){
//         $db = 'logisys3_bcu';
//     }else if($univcode == '042'){
//         $db = 'logisys3_bnu';
//     }else if($univcode == '046'){
//         $db = 'logisys3_gach';
//     }else if($univcode == '048'){
//         $db = 'logisys3_rur';
//     }else if($univcode == '052'){
//         $db = 'logisys3_jssstu';
//     }else if($univcode == '051'){
//         $db = 'logisys3_dypatil';
//     }else if($univcode == '050'){
//         $db = 'logisys3_srun';
//     }else if($univcode == '049'){
//         $db = 'logisys3_nmamit';
//     }else if($univcode == '029'){
//         $db = 'logisys3_nitte';
//     }else if($univcode == '026'){
//         $db = 'logisys3_vku';
//     }else if($univcode == '003'){
//         $db = 'logisys3_kus';
//     }else if($univcode == '023'){
//         $db = 'logisys3_dud';
//     }else if($univcode == '001'){
//         $db = 'logisys3_gug';
//     }else if($univcode == '027'){
//         $db = 'logisys3_rcu';
//     }else if($univcode == '008'){
//         $db = 'logisys3_kswu';
//     }else if($univcode == '030'){
//         $db = 'logisys3_reva';
//     }else if($univcode == '033'){
//         $db = 'logisys3_gcg';
//     }else if($univcode == '035'){
//         $db = 'logisys3_gcc';
//     }else if($univcode == '037'){
//         $db = 'logisys3_gsh';
//     }else if($univcode == '039'){
//         $db = 'logisys3_stph';
//     }else if($univcode == '040'){
//         $db = 'logisys3_aims';
//     }else if($univcode == '098'){
//         $db = 'logisys3_demo';
//     }

//     $conn = mysqli_connect($host, $user, $password,$db);

//     if (!$conn) {
//     die("Connection failed: " . mysqli_connect_error());
//     }

    
//     $escaped_content = mysqli_real_escape_string($conn, $temp);

//     $date = date('Y-m-d H:i:s');
    
//     if($file){
//         if($file != '' && $file!=NULL){
//             $query = "update qpseterdet set ffilename='{$file}', fqpduser = '{$userid}', fqpdtme = '{$date}', 
//             fqpfile = '{$escaped_content}', fuploadstatus = 'T'
//             where fteachcode = '{$userid}'
//             and fqpcode = '{$qpcode}'
//             and fset = '{$sets}'";
             
//             $result = $aobj_context->pobj_db->Execute($query);
//         }
//     }

//     if(count($result) > 0)
//     {
//         $arr['msg'] = 'Success';
//         echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success"); 
//     }
//     else
//     {
//         $arr['msg'] = 'No States Found';
//         echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
//     }
// }

// function viewQPDet($aobj_context){
//     $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
//     $univcode = $aobj_context->mobj_data["univcode"];
//     $teachcode = $aobj_context->mobj_data["tech"];
//     $qpcode = $aobj_context->mobj_data["qpcode"];

//     $host = 'logisys.cluster-cv9maxyrxjgg.ap-south-1.rds.amazonaws.com';
//     $user = 'admin';
//     $password = 'T0g3th3r@all';
//     if($univcode == '041'){
//         $db = 'logisys3_bcu';
//     }else if($univcode == '042'){
//         $db = 'logisys3_bnu';
//     }else if($univcode == '046'){
//         $db = 'logisys3_gach';
//     }else if($univcode == '048'){
//         $db = 'logisys3_rur';
//     }else if($univcode == '052'){
//         $db = 'logisys3_jssstu';
//     }else if($univcode == '051'){
//         $db = 'logisys3_dypatil';
//     }else if($univcode == '050'){
//         $db = 'logisys3_srun';
//     }else if($univcode == '049'){
//         $db = 'logisys3_nmamit';
//     }else if($univcode == '029'){
//         $db = 'logisys3_nitte';
//     }else if($univcode == '026'){
//         $db = 'logisys3_vku';
//     }else if($univcode == '003'){
//         $db = 'logisys3_kus';
//     }else if($univcode == '023'){
//         $db = 'logisys3_dud';
//     }else if($univcode == '001'){
//         $db = 'logisys3_gug';
//     }else if($univcode == '027'){
//         $db = 'logisys3_rcu';
//     }else if($univcode == '008'){
//         $db = 'logisys3_kswu';
//     }else if($univcode == '030'){
//         $db = 'logisys3_reva';
//     }else if($univcode == '033'){
//         $db = 'logisys3_gcg';
//     }else if($univcode == '035'){
//         $db = 'logisys3_gcc';
//     }else if($univcode == '037'){
//         $db = 'logisys3_gsh';
//     }else if($univcode == '039'){
//         $db = 'logisys3_stph';
//     }else if($univcode == '040'){
//         $db = 'logisys3_aims';
//     }else if($univcode == '098'){
//         $db = 'logisys3_demo';
//     }

//     $conn = mysqli_connect($host, $user, $password,$db);
//     if (!$conn) {
//     die("Connection failed: " . mysqli_connect_error());
//     }

//     if($qpcode == "" || null){
//         $con = "";
//     }else{
//         $con = "and fqpcode = '{$qpcode}'";
//     }

//     $query = "select ffilename,fqpfile from qpseter where fteachcode = '{$teachcode}' $con";
//     $result = $aobj_context->pobj_db->GetRow($query);
//     $pdf_content = $result['fqpfile'];
//     $stmt = mysqli_prepare($conn, $query); 
//     mysqli_stmt_bind_param($stmt, "i", $teachcode);
//     mysqli_stmt_execute($stmt);
//     mysqli_stmt_bind_result($stmt, $pdf_content);
//     mysqli_stmt_fetch($stmt);

//     header("Content-Type: application/pdf");
//     header("Content-Disposition: attachment; filename={$result['ffilename']}");
    
//     if(count($result) > 0)
//     {
//         echo $pdf_content; 
//     }
//     else
//     {
//         $arr['msg'] = 'No States Found';
//         echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
//     }
// }

function displayQPDetails($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $board = $aobj_context->mobj_data["board"];
    $typ = $aobj_context->mobj_data["typ"];
   
    if($board == 'All'){
        $con1="";
    }else{
        $con1 = "and qp.fqpcode = '{$board}'";
    }

    if($typ == 'All'){
        $con2="";
    }elseif ($typ == 'not'){
        $con2="and qp.fapprovedstatus <> 'T'";
    }else{
        $con2="and qp.fapprovedstatus = 'T'";
    }

    $query = "select qp.fqpcode, qp.fteachcode,s.fsubname,m.fteachname,qp.fqpfile,fapprovedstatus
    from qpseter qp 
    inner join subject s on qp.fqpcode = s.fqpcode and qp.fboard = s.fboard
    inner join masteach m on m.fteachcode = qp.fteachcode
    inner join teachsub t on m.fteachcode = t.fteachcode
    where qp.fqpfile <>'' $con1 $con2
     group by qp.fteachcode";

    $result = $aobj_context->pobj_db->GetAll($query);
    
    if(count($result) > 0)
    {
        echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No Data Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }

}

function approvedQPDet($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $userid = $aobj_context->mobj_data["userid"];
    $qpcode = $aobj_context->mobj_data["qpcode"];
    $teach = $aobj_context->mobj_data["teach"];
   
    $file = basename($_FILES['File']['name']);
    $temp = file_get_contents($_FILES['File']['tmp_name']);
    
    $host = 'logisys.cluster-cv9maxyrxjgg.ap-south-1.rds.amazonaws.com';
    $user = 'admin';
    $password = 'T0g3th3r@all';

    if($univcode == '041'){
        $db = 'logisys3_bcu';
    }else if($univcode == '042'){
        $db = 'logisys3_bnu';
    }else if($univcode == '046'){
        $db = 'logisys3_gach';
    }else if($univcode == '048'){
        $db = 'logisys3_rur';
    }else if($univcode == '052'){
        $db = 'logisys3_jssstu';
    }else if($univcode == '051'){
        $db = 'logisys3_dypatil';
    }else if($univcode == '050'){
        $db = 'logisys3_srun';
    }else if($univcode == '049'){
        $db = 'logisys3_nmamit';
    }else if($univcode == '029'){
        $db = 'logisys3_nitte';
    }else if($univcode == '026'){
        $db = 'logisys3_vku';
    }else if($univcode == '003'){
        $db = 'logisys3_kus';
    }else if($univcode == '023'){
        $db = 'logisys3_dud';
    }else if($univcode == '001'){
        $db = 'logisys3_gug';
    }else if($univcode == '027'){
        $db = 'logisys3_rcu';
    }else if($univcode == '008'){
        $db = 'logisys3_kswu';
    }else if($univcode == '030'){
        $db = 'logisys3_reva';
    }else if($univcode == '033'){
        $db = 'logisys3_gcg';
    }else if($univcode == '035'){
        $db = 'logisys3_gcc';
    }else if($univcode == '037'){
        $db = 'logisys3_gsh';
    }else if($univcode == '039'){
        $db = 'logisys3_stph';
    }else if($univcode == '040'){
        $db = 'logisys3_aims';
    }else if($univcode == '098'){
        $db = 'logisys3_demo';
    }
    

    $conn = mysqli_connect($host, $user, $password,$db);

    if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
    }

    
    $escaped_content = mysqli_real_escape_string($conn, $temp);

    $date = date('Y-m-d H:i:s');
    
    if($file){
        if($file != '' && $file!=NULL){
            $query = "update qpseter set ffilename='{$file}',  
            fapprovedqpd = '{$escaped_content}'
             where fteachcode = '{$teach}' and fqpcode = '{$qpcode}'";
            
            $result = $aobj_context->pobj_db->Execute($query);
        }
    }

    if(count($result) > 0)
    {
        $arr['msg'] = 'Success';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No data Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }
}

function saveAppQPDet($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $userid = $aobj_context->mobj_data["userid"];
    $file = basename($_FILES['File']['name']);
    $temp = file_get_contents($_FILES['File']['tmp_name']);
    $req = $aobj_context->req_body;
    $data = $req['data'];
    $table = $data['table'][0];
    $fapprovedstatus = $table['fapprovedstatus'];
    $fqpcode = $table['fqpcode'];
    $teachcode = $table['fteachcode'];

    $date = date('Y-m-d H:i:s');

    $query = "update qpseter set fapprovedstatus = '{$fapprovedstatus}',
    fapproveduser = '{$userid}', fapproveddate = '{$date}' 
                where fteachcode = '{$teachcode}' and fqpcode = '{$fqpcode}'";
                
    $result = $aobj_context->pobj_db->Execute($query);
        
    if(count($result) > 0)
    {
        $arr['msg'] = 'Success';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No data Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }
}

function disAppQPDetails($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $board = $aobj_context->mobj_data["board"];
    $type = $aobj_context->mobj_data["typ"];
    $uptyp = $aobj_context->mobj_data["uptyp"];
   
    if($board == 'All'){
        $con1="";
    }else{
        $con1 = "and qp.fqpcode = '{$board}'";
    }

    if($uptyp== 'All'){
        $con2 = "";
    }elseif($uptyp == 'T'){
        $con2 = "and ifnull(qp.fqpfile,'') <> ''";
    }elseif($uptyp == 'F'){
        $con2 = "and ifnull(qp.fqpfile,'') = ''";
    }

    if($uptyp == 'F'){
        $typ = "";
    }else{
        $typ = $type;
    }

    if($typ == 'T'){
        $con3 = "and qp.fapprovedstatus = 'T'";
    }else{
        $con3 = "";
    }

    $query = "select qp.fqpcode, qp.fteachcode,s.fsubname,m.fteachname,
    if(ifnull(qp.fqpfile,'') = '','Not Uploaded', 'Uploaded') as taechstatus,
    if(ifnull(qp.fapprovedstatus,'F') = 'T','Approved', 'Not Approved') as appstatus
    from qpseter qp 
    inner join subject s on qp.fqpcode = s.fqpcode and qp.fboard = s.fboard
    inner join masteach m on m.fteachcode = qp.fteachcode
    inner join teachsub t on m.fteachcode = t.fteachcode
    where qp.fappointed ='T' 
    $con1
    $con2
    $con3
    group by qp.fteachcode";

    $result = $aobj_context->pobj_db->GetAll($query);
    
    if(count($result) > 0)
    {
        echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'No Data Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }

}

function viewApproveQP($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    $univcode = $aobj_context->mobj_data["univcode"];
    $teachcode = $aobj_context->mobj_data["tech"];
    $qpcode = $aobj_context->mobj_data["qpcode"];

    $query = "select ffilename,fqpfile from qpseter where fapproveduser = '{$teachcode}' 
    and fqpcode = '{$qpcode}'";

    $result = $aobj_context->pobj_db->GetRow($query);
    $pdf_content = $result['fqpfile'];
    $stmt = mysqli_prepare($conn, $query); 
    mysqli_stmt_bind_param($stmt, "i", $teachcode);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_bind_result($stmt, $pdf_content);
    mysqli_stmt_fetch($stmt);

    header("Content-Type: application/pdf");
    header("Content-Disposition: attachment; filename={$result['ffilename']}");
    
    if(count($result) > 0)
    {
        echo $pdf_content; 
    }
    else
    {
        $arr['msg'] = 'No data Found';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }
}

function uploadQPDet($aobj_context){
    $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
    include("error_log.php");
    $univcode = $aobj_context->mobj_data["univcode"];
    $userid = $aobj_context->mobj_data["userid"];
    $qpcode = $aobj_context->mobj_data["qpcode"];
    $sets = $aobj_context->mobj_data["set"];
    $fexam = $aobj_context->mobj_data["fexam"];
    $collcode = $aobj_context->mobj_data["collcode"];
    $mobile = $aobj_context->mobj_data["mobileno"];
    
    $file = $_FILES['File']['name'];
    $temp = $_FILES['File']['tmp_name'];

    $qpfile = $_FILES['QPFile']['name'];
    $qptemp = $_FILES['QPFile']['tmp_name'];

    $date = date('Y-m-d H:i:s');
    $ext = pathinfo($file, PATHINFO_EXTENSION);
    $extend = pathinfo($qpfile, PATHINFO_EXTENSION);
    $splitExam = explode("-", $fexam);
    $fyear = $splitExam[0];
    $fexamtype = $splitExam[1];
    
    if($file !== "" || $file !== NULL){
        // $name = $userid."-".$qpcode."-".$sets."_AnsKey";
        // $file_name = $name.".".$ext;

        $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        $length = 30; 
        $randomString = '';

        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[rand(0, strlen($characters) - 1)];
        }

        $file_name = $userid."_".$qpcode."_ans_".$randomString.".".$ext;

        mkdir($aobj_context->main_src."QP_Details/".$univcode."/".$fexam."/".$qpcode."/", 0777, true);
        move_uploaded_file($temp,"QP_Details/".$univcode."/".$fexam."/".$qpcode."/".$file_name);
        
        $file_path = "QP_Details/".$univcode."/".$fexam."/".$qpcode."/".$file_name;

        $file = $aobj_context->main_src."QP_Details/{$univcode}/{$fexam}/{$qpcode}/{$file_name}";
        if(file_exists($file)){
            if($file){
               
                    $query = "update qpseterdet set ffilename='{$file_name}', fqpduser = '{$userid}',
                    fqpdtme = '{$date}', 
                    fuploadstatus = 'T',fanskeypath = '{$file_path}'
                    where fteachcode = '{$userid}'
                    and fqpcode = '{$qpcode}'
                    and fset = '{$sets}' and fyear = '{$fyear}' and fexamtype = '{$fexamtype}'";
                    
                    $result = $aobj_context->pobj_db->Execute($query);

                    $remarks = "Upload Answer Key -  uploaded answer key file against ".$qpcode;
                    $res = error_logs($aobj_context, $univcode, $remarks, $collcode, "Upload Question Paper Details - Upload Answer Key", $userid, $mobile);
            }
        }
    }
    if($qpfile !== "" || $qpfile !== NULL){
        // $name = $qpcode."-".$sets;
        // $file_name1 = $userid."-".$qpcode."-".$sets.".".$extend;

        $characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        $length = 30; 
        $randomString = '';

        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[rand(0, strlen($characters) - 1)];
        }

        $file_name1 = $userid."_".$qpcode."_qp_".$sets."_".$randomString.".".$extend;

        $dir = mkdir($aobj_context->main_src."QP_Details/".$univcode."/".$fexam."/".$qpcode."/", 0777);
        move_uploaded_file($qptemp,"QP_Details/".$univcode."/".$fexam."/".$qpcode."/".$file_name1);
        
        $file_path = "QP_Details/".$univcode."/".$fexam."/".$qpcode."/".$file_name1;

        $qpfile = $aobj_context->main_src."QP_Details/{$univcode}/{$fexam}/{$qpcode}/{$file_name1}";
        if(file_exists($qpfile)){
            if($qpfile){

                    $query1 = "update qpseterdet set ffilename='{$file_name1}', fqpduser = '{$userid}', fqpdtme = '{$date}', 
                    fuploadstatus = 'T',fqpfilepath = '{$file_path}'
                    where fteachcode = '{$userid}'
                    and fqpcode = '{$qpcode}'
                    and fset = '{$sets}' and fyear = '{$fyear}' and fexamtype = '{$fexamtype}'";
                    
                    $result1 = $aobj_context->pobj_db->Execute($query1);

                    $remarks = "Upload Question Paper -  uploaded Question Paper file against ".$qpcode;
                    $res = error_logs($aobj_context, $univcode, $remarks, $collcode, "Upload Question Paper Details - Upload Question Paper", $userid, $mobile);
                
            }
        }
    }
    if($result)
    {
        $arr['msg'] = 'Success';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success"); 
    }
    else
    {
        $arr['msg'] = 'File Not Uploaded';
        echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
    }
}

function viewQPDet($aobj_context){
        $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
        $univcode = $aobj_context->mobj_data["univcode"];
        $teachcode = $aobj_context->mobj_data["tech"];
        $qpcode = $aobj_context->mobj_data["qpcode"];
        $set = $aobj_context->mobj_data["set"];
        $type = $aobj_context->mobj_data["type"];

        if($type === "AK"){
            $con = "fanskeypath";
        }elseif($type === "QP"){
            $con = "fqpfilepath";
        }
    
        $query = "select $con from qpseterdet
        where fteachcode = '{$teachcode}' and fqpcode = '{$qpcode}' and fset = '{$set}'";
        $result = $aobj_context->pobj_db->GetRow($query);

        if($type === "AK"){
            $file_url = $result['fanskeypath'];
        }elseif($type === "QP"){
            $file_url = $result['fqpfilepath'];
        }
        
        $file_data = $aobj_context->main_src."uploadqpscheme/{$file_url}";

        header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
        header('Content-Type: application/octet-stream');
        header("Content-Transfer-Encoding: Binary");
        
        header("Content-disposition: attachment; filename=\"" . basename($file_data) . "\"");

        readfile($file_url);
        
        if(count($result) > 0)
        {
            echo $pdf_content; 
        }
        else
        {
            $arr['msg'] = 'No data Found';
            echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
        }
    }

    function acceptQPDet($aobj_context){
        $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
        include("error_log.php");
        $univcode = $aobj_context->mobj_data["univcode"];
        $fqpcode = $aobj_context->mobj_data["qpcode"];
        $set = $aobj_context->mobj_data["set"];
        $accept = $aobj_context->mobj_data["accept"];
        $teachcode = $aobj_context->mobj_data["userid"];
        $collcode = $aobj_context->mobj_data["collcode"];
        $mobile = $aobj_context->mobj_data["mobile"];
    

        $query1 = "update qpseter set fstatus = 'T'
        where fteachcode = '{$teachcode}' and fqpcode = '{$fqpcode}'";
        $result1 = $aobj_context->pobj_db->Execute($query1);

        $query = "update qpseterdet set fstatus = '{$accept}'
                    where fteachcode = '{$teachcode}' and fqpcode = '{$fqpcode}'
                     and fset = '{$set}'";
                    
        $result = $aobj_context->pobj_db->Execute($query);

        $remarks = "Teacher ". $teachcode . " is ". $accept . " against QPCODE ". $fqpcode;
        $res = error_logs($aobj_context, $univcode, $remarks, $collcode, "Upload QP Pattern and Syllabus Pattern", $teachcode, $mobile);   
        if(count($result) > 0)
        {
            $arr['msg'] = 'Success';
            echo $aobj_context->mobj_output->ToJSONEnvelope($arr,0,"success"); 
        }
        else
        {
            $arr['msg'] = 'No data Found';
            echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
        }
    }

    function acceptedUploadQP($aobj_context){
        $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
        $univcode = $aobj_context->mobj_data["univcode"];
        $teachcode = $aobj_context->mobj_data["userid"];
        
        $query = "select qp.fqpcode, s.fsubname, s.fvalmax,qp.fset,concat(qp.fyear,'-', qp.fexamtype)as fexam,
            qp.fqpfilepath,qp.fanskeypath,s.FQPPATREN,s.FQPSYLLABUS, s.FSUBSHORT, s.FSHORTNAME,
            ifnull(qp.fqpdtme,'') as qpupd
            from qpseterdet qp inner join subject s on qp.fqpcode = s.fqpcode 
            inner join degree d on s.fdegree = d.fdegree and d.fexamno = s.fexamno
            inner join qpset_deggrp dg on d.fdeggrp = dg.fdeggrp and qp.fyear = dg.fyear
            and qp.fexamtype = dg.fexamtype
            inner join qpseter q on qp.fqpcode = q.fqpcode
            and qp.fteachcode = q.fteachcode and qp.fyear = q.fyear 
            and qp.fexamtype = q.fexamtype
            and q.fappointed = 'T'
            where qp.fteachcode = '{$teachcode}' 
            and qp.fstatus = 'ACCEPTED'
            group by fqpcode,fset,qp.fyear,qp.fexamtype";
        
        // "select qp.fqpcode, s.fsubname, s.fvalmax,qp.fset,concat(qp.fyear,'-', qp.fexamtype)as fexam,
        // qp.fqpfilepath,qp.fanskeypath,s.FQPPATREN,s.FQPSYLLABUS, s.FSUBSHORT, s.FSHORTNAME
        // from qpseterdet qp inner join subject s on qp.fqpcode = s.fqpcode 
        // inner join qpseter q on qp.fqpcode = q.fqpcode
        // and qp.fteachcode = q.fteachcode and qp.fyear = q.fyear 
        // and qp.fexamtype = q.fexamtype
        // and q.fappointed = 'T'
        // where qp.fteachcode = '{$teachcode}' 
        // and qp.fstatus = 'ACCEPTED'
        // group by fqpcode,fset";
    
        $result = $aobj_context->pobj_db->GetAll($query);
       
        if(count($result) > 0)
        {
            echo $aobj_context->mobj_output->ToJSONEnvelope($result,0,"success"); 
        }
        else
        {
            $arr['msg'] = 'No data Found';
            echo $aobj_context->mobj_output->ToJSONEnvelope($arr,-1,"failure");
        }
    }

    function downloadSyllabus($aobj_context){
        $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
        include("error_log.php");
        $univcode = $aobj_context->mobj_data["univcode"];
        $teachcode = $aobj_context->mobj_data["userid"];
        $mobile = $aobj_context->mobj_data["mobile"];
        $collcode = $aobj_context->mobj_data["collcode"];
        $fvalmax = $aobj_context->mobj_data["fvalmax"];
        $fset = $aobj_context->mobj_data["fset"];
        $fqpcode = $aobj_context->mobj_data["fqpcode"];

        $remarks = "Syllabus with COs - Max Marks ".$fvalmax. " and ".$fset." is downloaded by Teacher ". $teachcode . " against Qp Code ". $fqpcode;
        $res = error_logs($aobj_context, $univcode, $remarks, $collcode, "Upload Question Paper Details", $teachcode, $mobile);   
    }

    function downloadQPPattern($aobj_context){
        $aobj_context->mobj_db->SetFetchMode(ADODB_FETCH_ASSOC);
        include("error_log.php");
        $univcode = $aobj_context->mobj_data["univcode"];
        $teachcode = $aobj_context->mobj_data["userid"];
        $mobile = $aobj_context->mobj_data["mobile"];
        $collcode = $aobj_context->mobj_data["collcode"];
        $fvalmax = $aobj_context->mobj_data["fvalmax"];
        $fset = $aobj_context->mobj_data["fset"];
        $fqpcode = $aobj_context->mobj_data["fqpcode"];

        $remarks = "Question Paper Pattern - Max Marks ".$fvalmax. " and ".$fset." is downloaded by Teacher ". $teachcode . " against Qp Code ". $fqpcode;
        $res = error_logs($aobj_context, $univcode, $remarks, $collcode, "Upload Question Paper Details", $teachcode, $mobile);   
    }

?>