Sindbad~EG File Manager

Current Path : /home/numerotech/www/livemt2023.aios-scientificcommittee.org/app/controllers/
Upload File :
Current File : //home/numerotech/www/livemt2023.aios-scientificcommittee.org/app/controllers/EvalController.php

<?php

class EvalController extends BaseController {


    //http://stackoverflow.com/questions/26666375/login-trouble-in-laravel-4-2
    //http://stackoverflow.com/questions/23134702/laravel-4-2-and-remember-me-update

    //*********************************************** IC ***********************************************//

    //IC get    
    public function getICs($id = null){  

        $user_id = CustomClass::getUserId();
        $abs_type = "IC";

        $result =  Mark::usp_evaluation_status($user_id,$abs_type);        

        $categories = [];
        $abstracts  = [];

        foreach ($result as $key => $value) {
            array_push($categories, $value->parent_category);            
            $abstracts[$value->parent_category][] = $value;
        }


        return View::make('evaluation.ic_index')
        			->with('abstracts',$abstracts)
                    ->with('categories',array_unique($categories));
    }

    //IC view
    public function viewIC($id,$msg = null){      

        $evaluator_id   = CustomClass::getUserId();
        $categories     = array('' => '--select--') + Category::IC();        
        $leves          = array('' => '--select--') + CustomClass::$IC_LEVELS;


        if($id != null )
            $id = intval(urldecode(Helper::decrypt($id)));

        $ic = null;

        if($id>0)
        {
            $ic = Abstracts::find($id);

            if($ic->user_id==$evaluator_id)
            {
                return  Redirect::to('eval/ic/index');  
            }

            $arr    = App::make('ICController')->get_COI_Count_and_duration($ic->abs_id,$ic);
            $user   = App::make('UserController')->getUserDetails($ic->user_id); 
            $mark   = Mark::where('user_id',$evaluator_id)->where('abs_id',$ic->abs_id)->first();

            return View::make('evaluation.ic_view',compact('#msg'))
                            ->with('mark',$mark)
                            ->with('ic',$ic)
                            ->with('user',$user)
                            ->with('cois',$arr["cois"])
                            ->with('categories',$categories)                            
                            ->with('totalDuration',$arr['totalDuration'])
                            ->with('msg',$msg);
        }
                 
    }


    //IC Store
    public function storeIC($mark_id,$isnext=0){      
        
        try {
          
            if($mark_id != null )

            $mark_id = intval(urldecode(Helper::decrypt($mark_id)));

            $mark = null;

            if($mark_id >0)
            {
                $mark = Mark::find($mark_id);
                $mark->m1 = Input::get("drpM1");
                $mark->m2 = Input::get("drpM2");
                $mark->m3 = Input::get("drpM3");
                $mark->m4 = Input::get("drpM4");
                $mark->comments = Helper::trimAndTruncate(Input::get("txtcom"),500);
                $mark->sys_m1 = $mark->m1;
                $mark->sys_m2 = $mark->m2;
                $mark->sys_m3 = $mark->m3;
                $mark->sys_m4 = $mark->m4;
                $mark->sys_m5 = $mark->m5;
                $mark->marks_total          = (is_numeric($mark->m1)? $mark->m1 : 0)  + (is_numeric($mark->m2)? $mark->m2 : 0) + (is_numeric($mark->m3)?  $mark->m3 : 0) + (is_numeric($mark->m4)? $mark->m4 : 0) + (is_numeric($mark->m5)?  $mark->m5 : 0);
                $mark->sys_marks_total      = $mark->marks_total;
                $mark->platform_id          = CustomClass::$Platform_Web;
                $mark->mark_update_count    = $mark->mark_update_count + 1;
                $mark->sync_at              = date('Y-m-d H:i:s');
                $mark->save();
            }

            $msg =AppMessage::$MARK_SUCCESS;         


            
        } catch (Exception $e) {
            Log::error('EvalController - storeIC : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";         
        }
        if($isnext==0)
        {
            //Session::flash('msgSuccess', $msg);             
            return $this->viewIC(Helper::encrypt($mark->abs_id),$msg);
            //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($mark->abs_id)) .'#msg')
              //                      ->with('markSuccess',$msg);    
        }
        
                 
    }



    //IC Previous Next marks abstracts
    public function PreviousNextIC($is_next,$order_no,$mark_id=null){      

        try {

            $evaluator_id   = CustomClass::getUserId();
            $abs_type       = CustomClass::$IC;
            $result = Mark::usp_prev_next_evaluation_abstract($evaluator_id,$abs_type,$order_no,1);
            $prev_abs_id =  $result[0]->prev;
            $next_abs_id =  $result[0]->next;   


            if($is_next == 1)
            {
                if($mark_id !=null)
                {                    
                    $this->storeIC($mark_id,1);
                }
                if($next_abs_id>0)
                {
                    return  $this->viewIC(Helper::encrypt($next_abs_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($next_abs_id)));                                            
                }
                else
                {
                    return  Redirect::to('eval/ic/index');  
                }
            }
            else
            {
                if($prev_abs_id>0)
                {
                    return  $this->viewIC(Helper::encrypt($prev_abs_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($prev_abs_id)));    
                }
                else
                {
                    return  Redirect::to('eval/ic/index');  
                }                    
            }
            
        } catch (Exception $e) {
            Log::error('EvalController - PreviousNextIC : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";   
            return  Redirect::to('eval/ic/index')->with('msgError',$msg);        
        }
        
    }


    //*********************************************** IC ***********************************************//


     //*********************************************** FP ***********************************************//

    //FP get    
    public function getFPs($id = null){  

        $user_id = CustomClass::getUserId();
        $abs_type = "FP";

        $result =  Mark::usp_evaluation_status($user_id,$abs_type);        

        $categories = [];
        $abstracts  = [];

        foreach ($result as $key => $value) {
            array_push($categories, $value->parent_category);            
            $abstracts[$value->parent_category][] = $value;
        }


        return View::make('evaluation.fp_index')
                    ->with('abstracts',$abstracts)
                    ->with('categories',array_unique($categories));
    }

    //FP view
    public function viewFP($id,$msg = null){      

        $evaluator_id   = CustomClass::getUserId();
        $categories     = array('' => '--select--') + Category::FP();     
        $pres_types = array('' => '--select--') + PresType::lists('type','presentation_type_id');   

        if($id != null )
            $id = intval(urldecode(Helper::decrypt($id)));

        $ic = null;

        if($id>0)
        {
            $abs = Abstracts::find($id);

            if($abs->user_id==$evaluator_id)
            {
                return  Redirect::to('eval/fp/index');  
            }
            
            $user   = App::make('UserController')->getUserDetails($abs->user_id); 
            $mark   = Mark::where('user_id',$evaluator_id)->where('abs_id',$abs->abs_id)->first();

            return View::make('evaluation.fp_view',compact('#msg'))
                            ->with('mark',$mark)
                            ->with('abs',$abs)
                            ->with('user',$user)                            
                            ->with('categories',$categories)                                                        
                            ->with('pres_types',$pres_types)                                                                                    
                            ->with('msg',$msg);

        }
                 
    }


    //FP Store
    public function storeFP($mark_id,$isnext=0){      
        
        try {
          
            if($mark_id != null )

            $mark_id = intval(urldecode(Helper::decrypt($mark_id)));

            $mark = null;

            if($mark_id >0)
            {
                $mark = Mark::find($mark_id);
                $mark->m1 = Input::get("drpM1");
                $mark->m2 = Input::get("drpM2");
                $mark->m3 = Input::get("drpM3");
                $mark->m4 = Input::get("drpM4");
                $mark->comments = Helper::trimAndTruncate(Input::get("txtcom"),500);
                $mark->sys_m1 = $mark->m1;
                $mark->sys_m2 = $mark->m2;
                $mark->sys_m3 = $mark->m3;
                $mark->sys_m4 = $mark->m4;
                $mark->sys_m5 = $mark->m5;
                $mark->marks_total          = (is_numeric($mark->m1)? $mark->m1 : 0)  + (is_numeric($mark->m2)? $mark->m2 : 0) + (is_numeric($mark->m3)?  $mark->m3 : 0) + (is_numeric($mark->m4)? $mark->m4 : 0) + (is_numeric($mark->m5)?  $mark->m5 : 0);
                $mark->sys_marks_total      = $mark->marks_total;
                $mark->platform_id          = CustomClass::$Platform_Web;
                $mark->mark_update_count    = $mark->mark_update_count + 1;
                $mark->sync_at              = date('Y-m-d H:i:s');
                $mark->save();
            }

            $msg =AppMessage::$MARK_SUCCESS;         


            
        } catch (Exception $e) {
            Log::error('EvalController - storeFP : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";         
        }
        if($isnext==0)
        {
            //Session::flash('msgSuccess', $msg);             
            return $this->viewFP(Helper::encrypt($mark->abs_id),$msg);
            //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($mark->abs_id)) .'#msg')
              //                      ->with('markSuccess',$msg);    
        }
        
                 
    }



    //FP Previous Next marks abstracts
    public function PreviousNextFP($is_next,$order_no,$mark_id=null){      

        try {

            $evaluator_id   = CustomClass::getUserId();
            $abs_type       = CustomClass::$FP;
            $result = Mark::usp_prev_next_evaluation_abstract($evaluator_id,$abs_type,$order_no,1);
            $prev_abs_id =  $result[0]->prev;
            $next_abs_id =  $result[0]->next;   


            if($is_next == 1)
            {
                if($mark_id !=null)
                {                    
                    $this->storeFP($mark_id,1);
                }
                if($next_abs_id>0)
                {
                    return  $this->viewFP(Helper::encrypt($next_abs_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($next_abs_id)));                                            
                }
                else
                {
                    return  Redirect::to('eval/fp/index');  
                }
            }
            else
            {
                if($prev_abs_id>0)
                {
                    return  $this->viewFP(Helper::encrypt($prev_abs_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($prev_abs_id)));    
                }
                else
                {
                    return  Redirect::to('eval/fp/index');  
                }                    
            }
            
        } catch (Exception $e) {
            Log::error('EvalController - PreviousNextFP : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";   
            return  Redirect::to('eval/fp/index')->with('msgError',$msg);        
        }
        
    }


    //*********************************************** FP ***********************************************//

//******************* VT *******************//

    //VT get    
    public function getVTs($id = null){  

        $user_id = CustomClass::getUserId();
        $abs_type = "VT";

        $result =  Mark::usp_evaluation_status($user_id,$abs_type);        

        $categories = [];
        $abstracts  = [];

        foreach ($result as $key => $value) {
            array_push($categories, $value->parent_category);            
            $abstracts[$value->parent_category][] = $value;
        }


        return View::make('evaluation.vt_index')
                    ->with('abstracts',$abstracts)
                    ->with('categories',array_unique($categories));
    }

    //VT view
    public function viewVT($id,$msg = null){      

        $evaluator_id   = CustomClass::getUserId();
        $categories     = array('' => '--select--') + Category::VT();        

        if($id != null )
            $id = intval(urldecode(Helper::decrypt($id)));

        $vt = null;

        if($id>0)
        {
            $abs = Abstracts::find($id);

            if($abs->user_id==$evaluator_id)
            {
                return  Redirect::to('eval/vt/index');  
            }
            
            $user   = App::make('UserController')->getUserDetails($abs->user_id); 
            $mark   = Mark::where('user_id',$evaluator_id)->where('abs_id',$abs->abs_id)->first();

            return View::make('evaluation.vt_view',compact('#msg'))
                            ->with('mark',$mark)
                            ->with('abs',$abs)
                            ->with('user',$user)
                            ->with('categories',$categories)               
                            ->with('msg',$msg);
        }
                 
    }


    //VT Store
    public function storeVT($mark_id,$isnext=0){      
        
        try {
          
            if($mark_id != null )

            $mark_id = intval(urldecode(Helper::decrypt($mark_id)));

            $mark = null;

            if($mark_id >0)
            {
                $mark = Mark::find($mark_id);
                $mark->m1 = Input::get("drpM1");
                $mark->m2 = Input::get("drpM2");
                $mark->m3 = Input::get("drpM3");
                $mark->m4 = Input::get("drpM4");
                $mark->comments = Helper::trimAndTruncate(Input::get("txtcom"),500);
                $mark->sys_m1 = $mark->m1;
                $mark->sys_m2 = $mark->m2;
                $mark->sys_m3 = $mark->m3;
                $mark->sys_m4 = $mark->m4;
                $mark->sys_m5 = $mark->m5;
                $mark->marks_total          = (is_numeric($mark->m1)? $mark->m1 : 0)  + (is_numeric($mark->m2)? $mark->m2 : 0) + (is_numeric($mark->m3)?  $mark->m3 : 0) + (is_numeric($mark->m4)? $mark->m4 : 0) + (is_numeric($mark->m5)?  $mark->m5 : 0);
                $mark->sys_marks_total      = $mark->marks_total;
                $mark->platform_id          = CustomClass::$Platform_Web;
                $mark->mark_update_count    = $mark->mark_update_count + 1;
                $mark->sync_at              = date('Y-m-d H:i:s');
                $mark->save();
            }

            $msg =AppMessage::$MARK_SUCCESS;         


            
        } catch (Exception $e) {
            Log::error('EvalController - storeVT : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";         
        }
        if($isnext==0)
        {
            //Session::flash('msgSuccess', $msg);             
            return $this->viewVT(Helper::encrypt($mark->abs_id),$msg);
            //return  Redirect::to('eval/vt/view/'.urldecode(Helper::encrypt($mark->abs_id)) .'#msg')
              //                      ->with('markSuccess',$msg);    
        }
        
                 
    }



    //VT Previous Next marks abstracts
    public function PreviousNextVT($is_next,$order_no,$mark_id=null){      

        try {

            $evaluator_id   = CustomClass::getUserId();
            $abs_type       = CustomClass::$VT;
            $result = Mark::usp_prev_next_evaluation_abstract($evaluator_id,$abs_type,$order_no,1);
            $prev_abs_id =  $result[0]->prev;
            $next_abs_id =  $result[0]->next;   


            if($is_next == 1)
            {
                if($mark_id !=null)
                {                    
                    $this->storeVT($mark_id,1);
                }
                if($next_abs_id>0)
                {
                    return  $this->viewVT(Helper::encrypt($next_abs_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($next_abs_id)));                                            
                }
                else
                {
                    return  Redirect::to('eval/vt/index');  
                }
            }
            else
            {
                if($prev_abs_id>0)
                {
                    return  $this->viewVT(Helper::encrypt($prev_abs_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($prev_abs_id)));    
                }
                else
                {
                    return  Redirect::to('eval/vt/index');  
                }                    
            }
            
        } catch (Exception $e) {
            Log::error('EvalController - PreviousNextVT : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";   
            return  Redirect::to('eval/vt/index')->with('msgError',$msg);        
        }
        
    }
    //******************* VT *******************//


     //******************* PP *******************//

    //PP get    
    public function getPPs($id = null){  

        $user_id = CustomClass::getUserId();
        $abs_type = "PP";

        $result =  Mark::usp_evaluation_status($user_id,$abs_type);        

        $categories = [];
        $abstracts  = [];

        foreach ($result as $key => $value) {
            array_push($categories, $value->parent_category);            
            $abstracts[$value->parent_category][] = $value;
        }


        return View::make('evaluation.pp_index')
                    ->with('abstracts',$abstracts)
                    ->with('categories',array_unique($categories));
    }

    //PP view
    public function viewPP($id,$msg = null){      

        $evaluator_id   = CustomClass::getUserId();
        $categories     = array('' => '--select--') + Category::FP();        

        if($id != null )
            $id = intval(urldecode(Helper::decrypt($id)));

        $pp = null;

        if($id>0)
        {
            $abs = Abstracts::find($id);

            if($abs->user_id==$evaluator_id)
            {
                return  Redirect::to('eval/pp/index');  
            }
            
            $user   = App::make('UserController')->getUserDetails($abs->user_id); 
            $mark   = Mark::where('user_id',$evaluator_id)->where('abs_id',$abs->abs_id)->first();

            return View::make('evaluation.pp_view',compact('#msg'))
                            ->with('mark',$mark)
                            ->with('abs',$abs)
                            ->with('user',$user)
                            ->with('categories',$categories)               
                            ->with('msg',$msg);
        }
                 
    }


    //PP Store
    public function storePP($mark_id,$isnext=0){      
        
        try {
          
            if($mark_id != null )

            $mark_id = intval(urldecode(Helper::decrypt($mark_id)));

            $mark = null;

            if($mark_id >0)
            {
                $mark = Mark::find($mark_id);
                $mark->m1 = Input::get("drpM1");
                $mark->m2 = Input::get("drpM2");
                $mark->m3 = Input::get("drpM3");
                $mark->m4 = Input::get("drpM4");
                $mark->comments = Helper::trimAndTruncate(Input::get("txtcom"),500);
                $mark->sys_m1 = $mark->m1;
                $mark->sys_m2 = $mark->m2;
                $mark->sys_m3 = $mark->m3;
                $mark->sys_m4 = $mark->m4;
                $mark->sys_m5 = $mark->m5;
                $mark->marks_total          = (is_numeric($mark->m1)? $mark->m1 : 0)  + (is_numeric($mark->m2)? $mark->m2 : 0) + (is_numeric($mark->m3)?  $mark->m3 : 0) + (is_numeric($mark->m4)? $mark->m4 : 0) + (is_numeric($mark->m5)?  $mark->m5 : 0);
                $mark->sys_marks_total      = $mark->marks_total;
                $mark->platform_id          = CustomClass::$Platform_Web;
                $mark->mark_update_count    = $mark->mark_update_count + 1;
                $mark->sync_at              = date('Y-m-d H:i:s');
                $mark->save();
            }

            $msg =AppMessage::$MARK_SUCCESS;         


            
        } catch (Exception $e) {
            Log::error('EvalController - storePP : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";         
        }
        if($isnext==0)
        {
            //Session::flash('msgSuccess', $msg);             
            return $this->viewPP(Helper::encrypt($mark->abs_id),$msg);
            //return  Redirect::to('eval/vt/view/'.urldecode(Helper::encrypt($mark->abs_id)) .'#msg')
              //                      ->with('markSuccess',$msg);    
        }
        
                 
    }



    //PP Previous Next marks abstracts
    public function PreviousNextPP($is_next,$order_no,$mark_id=null){      

        try {

            $evaluator_id   = CustomClass::getUserId();
            $abs_type       = CustomClass::$PP;
            $result = Mark::usp_prev_next_evaluation_abstract($evaluator_id,$abs_type,$order_no,1);
            $prev_abs_id =  $result[0]->prev;
            $next_abs_id =  $result[0]->next;   


            if($is_next == 1)
            {
                if($mark_id !=null)
                {                    
                    $this->storePP($mark_id,1);
                }
                if($next_abs_id>0)
                {
                    return  $this->viewPP(Helper::encrypt($next_abs_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($next_abs_id)));                                            
                }
                else
                {
                    return  Redirect::to('eval/pp/index');  
                }
            }
            else
            {
                if($prev_abs_id>0)
                {
                    return  $this->viewPP(Helper::encrypt($prev_abs_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($prev_abs_id)));    
                }
                else
                {
                    return  Redirect::to('eval/pp/index');  
                }                    
            }
            
        } catch (Exception $e) {
            Log::error('EvalController - PreviousNextPP : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";   
            return  Redirect::to('eval/pp/index')->with('msgError',$msg);        
        }
        
    }
    //******************* PP *******************//



    //******************* ARC *******************//

    //ARC get    
    public function getARCs($id = null){  

        $user_id = CustomClass::getUserId();
        $abs_type = "ARC";

        $result =  Mark::usp_evaluation_status($user_id,$abs_type);        

        $categories = [];
        $abstracts  = [];

        foreach ($result as $key => $value) {
            array_push($categories, $value->parent_category);            
            $abstracts[$value->parent_category][] = $value;
        }


        return View::make('evaluation.arc_index')
                    ->with('abstracts',$abstracts)
                    ->with('categories',array_unique($categories));
    }

    //ARC view
    public function viewARC($id,$msg = null){      

        $evaluator_id   = CustomClass::getUserId();
        $categories     = array('' => '--select--') + Category::ARC();        

        if($id != null )
            $id = intval(urldecode(Helper::decrypt($id)));

        $arc = null;

        if($id>0)
        {
            $abs = Abstracts::find($id);

            if($abs->user_id==$evaluator_id)
            {
                return  Redirect::to('eval/arc/index');  
            }
            
            $user   = App::make('UserController')->getUserDetails($abs->user_id); 
            $mark   = Mark::where('user_id',$evaluator_id)->where('abs_id',$abs->abs_id)->first();

            return View::make('evaluation.arc_view',compact('#msg'))
                            ->with('mark',$mark)
                            ->with('abs',$abs)
                            ->with('user',$user)
                            ->with('categories',$categories)               
                            ->with('msg',$msg);
        }
                 
    }


    //ARC Store
    public function storeARC($mark_id,$isnext=0){      
        
        try {
          
            if($mark_id != null )

            $mark_id = intval(urldecode(Helper::decrypt($mark_id)));

            $mark = null;

            if($mark_id >0)
            {
                $mark = Mark::find($mark_id);
                $mark->m1 = Input::get("drpM1");
                $mark->m2 = Input::get("drpM2");
                $mark->m3 = Input::get("drpM3");
                $mark->m4 = Input::get("drpM4");
                $mark->comments = Helper::trimAndTruncate(Input::get("txtcom"),500);
                $mark->sys_m1 = $mark->m1;
                $mark->sys_m2 = $mark->m2;
                $mark->sys_m3 = $mark->m3;
                $mark->sys_m4 = $mark->m4;
                $mark->sys_m5 = $mark->m5;
                $mark->marks_total          = (is_numeric($mark->m1)? $mark->m1 : 0)  + (is_numeric($mark->m2)? $mark->m2 : 0) + (is_numeric($mark->m3)?  $mark->m3 : 0) + (is_numeric($mark->m4)? $mark->m4 : 0) + (is_numeric($mark->m5)?  $mark->m5 : 0);
                $mark->sys_marks_total      = $mark->marks_total;
                $mark->platform_id          = CustomClass::$Platform_Web;
                $mark->mark_update_count    = $mark->mark_update_count + 1;
                $mark->sync_at              = date('Y-m-d H:i:s');
                $mark->save();
            }

            $msg =AppMessage::$MARK_SUCCESS;         
            
        } catch (Exception $e) {
            Log::error('EvalController - storeARC : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";         
        }
        if($isnext==0)
        {            
            return $this->viewARC(Helper::encrypt($mark->abs_id),$msg);            
        }
        
                 
    }



    //ARC Previous Next marks abstracts
    public function PreviousNextARC($is_next,$order_no,$mark_id=null){      

        try {

            $evaluator_id   = CustomClass::getUserId();
            $abs_type       = "ARC";
            $result = Mark::usp_prev_next_evaluation_abstract($evaluator_id,$abs_type,$order_no,1);
            $prev_abs_id =  $result[0]->prev;
            $next_abs_id =  $result[0]->next;   


            if($is_next == 1)
            {
                if($mark_id !=null)
                {                    
                    $this->storeARC($mark_id,1);
                }
                if($next_abs_id>0)
                {
                    return  $this->viewARC(Helper::encrypt($next_abs_id));                    
                }
                else
                {
                    return  Redirect::to('eval/arc/index');  
                }
            }
            else
            {
                if($prev_abs_id>0)
                {
                    return  $this->viewARC(Helper::encrypt($prev_abs_id));                    
                }
                else
                {
                    return  Redirect::to('eval/arc/index');  
                }                    
            }
            
        } catch (Exception $e) {
            Log::error('EvalController - PreviousNextARC : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";   
            return  Redirect::to('eval/arc/index')->with('msgError',$msg);        
        }
        
    }
    //******************* ARC *******************//



    //*********************************************** Judge ***********************************************//
    
     //FP get    
    public function WelcomeJudges($id = null){  


        $user_id = CustomClass::getUserId();     
        return View::make('evaluation.welcome');

    }
    
     public function getSessionJudges($id = null){  


        $user_id = CustomClass::getUserId();     
       

        $result =  JudgeMark::usp_get_sessions_for_judges($user_id);     


    // var_dump($result);
        // exit();
   

        // $name_in_grid = [];
        // $abstracts  = [];

        // foreach ($result as $key => $value) {
        //     array_push($name_in_grid, $value->name_in_grid);            
        //     $abstracts[$value->name_in_grid][] = $value;
        // }
        // var_dump($abstracts); 
        // exit();

        return View::make('evaluation.judge_session_index')
                    ->with('user_id',$user_id)
                    ->with('result',$result);
    }

    //FP get    
    public function getJudges($name_in_grid_id,$user_id){  

        $user_id = CustomClass::getUserId(); 
        $name_in_grid_id = intval(urldecode(Helper::decrypt($name_in_grid_id)));
        
        
        // $name_in_grid1 = urldecode(Helper::decrypt($name_in_grid));
        // var_dump($name_in_grid_id);
        // exit();
         $abstracts = DB::select("select abs.abs_id,abs.title,h.name,m.marks_total,abs.starts_by,abs.ends_by,abs.abs_no,abs.abs_type,st.type,abs.name_in_grid,u.prefix,u.first_name,um.membership_no from abstracts abs
                                    inner join authors a on a.abs_id = abs.abs_id
                                    inner join roles r on r.role_id = a.role_id
                                    inner join halls h on h.hall_id = abs.hall_id
                                    inner join selection_type st on st.selection_type_id = abs.selection_type_id
                                    inner join categories c on c.category_id = abs.category_id
                                    left join judges_marks m on m.abs_id = abs.abs_id and m.user_id = ".$user_id."
                                    inner join users u on u.user_id = abs.user_id
                                    inner join users_memberships um on um.user_id = u.user_id
                                 where a.role_id< 32 and abs.status_id = 2 and abs.name_in_grid_id =".$name_in_grid_id."  and a.user_id =  ".$user_id."
                                 group by abs.abs_id
                                 order by abs.abs_no asc");
        
        // var_dump($abstracts);
        // exit();
        // $categories = [];
        // $abstracts  = [];

        // foreach ($result as $key => $value) {
        //     $abstracts[] = $value;
        // }

        // var_dump($name_in_grid);
        // exit();
        return View::make('evaluation.judge_index')
                    ->with('abstracts',$abstracts)
                    ->with('name_in_grid_id',$name_in_grid_id)
                    ->with('user_id',$user_id);
    }

    //FP view
    public function viewJudge($id,$name_in_grid_id,$msg = null){   
        
    // var_dump($id);
    //     exit;
        $name_in_grid_id = intval(urldecode(Helper::decrypt($name_in_grid_id)));
        $evaluator_id   = CustomClass::getUserId();
        $categories     = array('' => '--select--') + Category::FP();     
        $pres_types = array('' => '--select--') + PresType::lists('type','presentation_type_id');   

        if($id != null )
            $id = intval(urldecode(Helper::decrypt($id)));
        

        $ic = null;
        
        $authors = DB::table('authors')->join('abstracts', 'abstracts.abs_id', '=', 'authors.abs_id')
                                          ->join('roles', 'roles.role_id', '=', 'authors.role_id')
                                          ->join('users', 'users.user_id', '=', 'abstracts.user_id')
                                          ->join('users_memberships', 'users_memberships.user_id', '=', 'users.user_id')
                                          ->where('authors.abs_id',$id)
                                          ->where('authors.role_id', '=', 35)
                                          ->first();
                                           
        //   var_dump($authors);
        // exit;


        $abstracts = DB::select("select abs.abs_id,abs.title,h.name,m.marks_total,abs.starts_by,abs.ends_by,abs.abs_no,abs.abs_type,st.type,abs.name_in_grid,u.prefix,u.first_name,um.membership_no from abstracts abs
                                    inner join authors a on a.abs_id = abs.abs_id
                                    inner join roles r on r.role_id = a.role_id
                                    inner join halls h on h.hall_id = abs.hall_id
                                    inner join selection_type st on st.selection_type_id = abs.selection_type_id
                                    inner join categories c on c.category_id = abs.category_id
                                    left join judges_marks m on m.abs_id = abs.abs_id
                                    inner join users u on u.user_id = abs.user_id
                                    inner join users_memberships um on um.user_id = u.user_id
                                 where a.role_id< 32 and abs.status_id = 2 and abs.name_in_grid_id =".$name_in_grid_id."  and a.user_id =  ".$evaluator_id."
                                 group by abs.abs_id
                                 order by abs.abs_no asc");
                                 
        // var_dump($abstracts);
        // exit;
                                 
        if($id>0)
        {
            $abs = Abstracts::find($id);

	   if($abs->abs_type=="KAFP")
            {
                $parent_abs = Abstracts::find($abs->keynote_abs_id);                
                $abs->category_id = $parent_abs->category_id;
            }

            if($abs->user_id==$evaluator_id)
            {
                return  Redirect::to('eval/judge/index/'.$name_in_grid_id.'/'.$evaluator_id);  
            }
            
            $user   = App::make('UserController')->getUserDetails($abs->user_id); 
            $mark   = JudgeMark::where('user_id',$evaluator_id)->where('abs_id',$abs->abs_id)->first();
            // var_dump($mark);
            // exit();

            return View::make('evaluation.judge_view',compact('#msg'))
                            ->with('mark',$mark)
                            ->with('abs',$abs)
                            ->with('user',$user)                            
                            ->with('categories',$categories)                                                        
                            ->with('pres_types',$pres_types)                                                                                    
                            ->with('msg',$msg)
                            ->with('evaluator_id',$evaluator_id)
                            ->with('id',$id)
                            ->with('name_in_grid_id',$name_in_grid_id)
                            ->with('authors',$authors)
                            ->with('abstracts',$abstracts);

        }
                 
    }

    //FP Store
    public function storeJudge($mark_id,$abs_id,$user_id,$name_in_grid_id,$isnext=0){      
        
        // try {
            
          $mark = null;
            
            $mark_id = intval(urldecode(Helper::decrypt($mark_id)));
            // var_dump($mark_id);
            //     exit();
            $user_id = intval(urldecode(Helper::decrypt($user_id)));
            $abs_id = intval(urldecode(Helper::decrypt($abs_id)));
            $name_in_grid_id = intval(urldecode(Helper::decrypt($name_in_grid_id)));
            
            if($mark_id >0)
            {   
                $mark = JudgeMark::find($mark_id);
            }
            if($mark == null)
            {
                $mark = New JudgeMark();
            }
            
            $checked = Input::get('absent');
            $mark->absent = $checked;
            
            $mark->m1 = Input::get("drpM1");
            $mark->m2 = Input::get("drpM2");
            $mark->m3 = Input::get("drpM3");
            $mark->m4 = Input::get("drpM4");
            $mark->m5 = Input::get("drpM5");
            $mark->comments = Helper::trimAndTruncate(Input::get('txtComments'),200);
            // var_dump($mark->comments);
            // exit();
            $mark->user_id = $user_id;
            $mark->abs_id = $abs_id;
            // $mark->comments = Helper::trimAndTruncate(Input::get("txtcom"),500);
            $mark->marks_total  = (is_numeric($mark->m1)? $mark->m1 : 0)  + (is_numeric($mark->m2)? $mark->m2 : 0) + (is_numeric($mark->m3)?  $mark->m3 : 0) + (is_numeric($mark->m4)? $mark->m4 : 0) + (is_numeric($mark->m5)?  $mark->m5 : 0);
            
            $mark->sync_at      = date('Y-m-d H:i:s');
            $mark->save();

            $msg =AppMessage::$MARK_SUCCESS;  
            
            return $this->viewJudge(Helper::encrypt($mark->abs_id),Helper::encrypt($name_in_grid_id),$msg);
            
       
            if($isnext==0)
            {
                //Session::flash('msgSuccess', $msg);             
                return $this->viewJudge(Helper::encrypt($mark->abs_id),Helper::encrypt($name_in_grid_id),$msg);
                //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($mark->abs_id)) .'#msg')
                  //                      ->with('markSuccess',$msg);    
            }
        
        // } catch (Exception $e) {
        //     Log::error('EvalController - storeJudge : '.$e->getMessage()); 
        //     $msg ="Sorry! Unable to process your request."; 
        //     return $this->viewJudge(Helper::encrypt($abs_id),$name_in_grid,$msg);
        // }
                 
    }
    // //FP Store
    // public function storeJudge($mark_id,$isnext=0){      
        
    //     try {
          
    //         if($mark_id != null )

    //         $mark_id = intval(urldecode(Helper::decrypt($mark_id)));

    //         $mark = null;

    //         if($mark_id >0)
    //         {
    //             $mark = JudgeMark::find($mark_id);
    //             $mark->m1 = Input::get("drpM1");
    //             $mark->m2 = Input::get("drpM2");
    //             $mark->m3 = Input::get("drpM3");
    //             $mark->m4 = Input::get("drpM4");
    //             $mark->comments = Helper::trimAndTruncate(Input::get("txtcom"),500);
    //             // $mark->sys_m1 = $mark->m1;
    //             // $mark->sys_m2 = $mark->m2;
    //             // $mark->sys_m3 = $mark->m3;
    //             // $mark->sys_m4 = $mark->m4;
    //             // $mark->sys_m5 = $mark->m5;
    //             $mark->marks_total          = (is_numeric($mark->m1)? $mark->m1 : 0)  + (is_numeric($mark->m2)? $mark->m2 : 0) + (is_numeric($mark->m3)?  $mark->m3 : 0) + (is_numeric($mark->m4)? $mark->m4 : 0) + (is_numeric($mark->m5)?  $mark->m5 : 0);
    //           //  $mark->sys_marks_total      = $mark->marks_total;
    //             //$mark->platform_id          = CustomClass::$Platform_Web;
    //             //$mark->mark_update_count    = $mark->mark_update_count + 1;
    //             $mark->sync_at              = date('Y-m-d H:i:s');
    //             $mark->save();
    //         }

    //         $msg =AppMessage::$MARK_SUCCESS;         


            
    //     } catch (Exception $e) {
    //         Log::error('EvalController - storeJudge : '.$e->getMessage()); 
    //         $msg ="Sorry! Unable to process your request.";         
    //     }
    //     if($isnext==0)
    //     {
    //         //Session::flash('msgSuccess', $msg);             
    //         return $this->viewJudge(Helper::encrypt($mark->abs_id),$msg);
    //         //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($mark->abs_id)) .'#msg')
    //           //                      ->with('markSuccess',$msg);    
    //     }
        
                 
    // }



    //FP Previous Next marks abstracts
    public function PreviousNextJudge($is_next,$abs_id,$name_in_grid_id,$mark_id=null){      

        // try {

            $evaluator_id   = CustomClass::getUserId();
            $result = JudgeMark::usp_prev_next_judges_abstracts($evaluator_id,$abs_id,$name_in_grid_id);
            // var_dump($result);
            // exit();
            $prev_abs_id =  $result[0]->prev;
            $next_abs_id =  $result[0]->next;   


            if($is_next == 1)
            { 
                // if($mark_id !=null)
                // {
                //     $this->storeJudge(urldecode(Helper::encrypt($mark_id)),urldecode(Helper::encrypt($abs_id)),urldecode(Helper::encrypt($evaluator_id)),urldecode(Helper::encrypt($name_in_grid_id)),1);
                // }
                if($next_abs_id>0)
                {
                    return $this->viewJudge(Helper::encrypt($next_abs_id),Helper::encrypt($name_in_grid_id));                    
                }
                else
                {
                    return  Redirect::to('eval/judge/index/'.urldecode(Helper::encrypt($name_in_grid_id)).'/'.$evaluator_id);  
                }
            }
            else
            {
                if($prev_abs_id>0)
                {
                    return  $this->viewJudge(Helper::encrypt($prev_abs_id),Helper::encrypt($name_in_grid_id));                    
                }
                else
                {
                    return  Redirect::to('eval/judge/index/'.urldecode(Helper::encrypt($name_in_grid_id)).'/'.$evaluator_id);   
                }                    
            }
            
        // } catch (Exception $e) {
        //     Log::error('EvalController - PreviousNextJudge : '.$e->getMessage()); 
        //     $msg ="Sorry! Unable to process your request.";   
        //     return  Redirect::to('eval/judge/index/'.$name_in_grid.'/'.$evaluator_id)->with('msgError',$msg);        
        // }
        
    }
    //*********************************************** FP ***********************************************//
    
    
         //*********************************************** Program ***********************************************//

    //Program get    
    public function getPrograms($id = null){  

        $user_id = CustomClass::getUserId();
        // $abs_type = "FP";
        $result =  ProgramMark::usp_program_evaluation_index($user_id);   
        // var_dump($result);
        // exit();

        $programs = [];
        $participant  = [];

        foreach ($result as $key => $value) {
            array_push($programs, $value->program_name);  
            
            $participant[$value->program_name][] = $value;
        }


        return View::make('evaluation.program_index')
                    ->with('participant',$participant)
                    ->with('programs',array_unique($programs));
    }

    //Program view
    public function viewProgram($id,$msg = null){      

        $evaluator_id   = CustomClass::getUserId();
        $programs       = DB::Table('programs')->lists('program_name','program_id');

        if($id != null )
            $id = intval(urldecode(Helper::decrypt($id)));

        $ic = null;

        if($id>0)
        {
            $participant = DB::Table('participant')->where('participant_id',$id)->first();
            // $abs = Abstracts::find($id);

            // if($abs->user_id==$evaluator_id)
            // {
            //     return  Redirect::to('eval/program/index');  
            // }
            
            $user   = App::make('UserController')->getUserDetails($participant->user_id); 
            $mark   = ProgramMark::where('user_id',$evaluator_id)->where('participant_id',$participant->participant_id)->first();
        

            return View::make('evaluation.program_view',compact('#msg'))
                            ->with('mark',$mark)
                            ->with('participant',$participant)
                            ->with('user',$user)                            
                            ->with('programs',$programs)                                                        
                            ->with('msg',$msg);

        }
                 
    }


    //Program Store
    public function storeProgram($mark_id,$isnext=0){      
        
        try {
            // var_dump($mark_id);
            // exit();
          
            if($mark_id != null )

            $mark_id = intval(urldecode(Helper::decrypt($mark_id)));

            $mark = null;

            if($mark_id >0)
            {
                $mark = ProgramMark::find($mark_id);
                
                $mark->m1 = Input::get("drpM1");
                $mark->m2 = Input::get("drpM2");
                $mark->m3 = Input::get("drpM3");
                $mark->m4 = Input::get("drpM4");
                $mark->m5 = Input::get("drpM5");
                $mark->comments = Helper::trimAndTruncate(Input::get("txtcom"),500);
                $mark->sys_m1 = $mark->m1;
                $mark->sys_m2 = $mark->m2;
                $mark->sys_m3 = $mark->m3;
                $mark->sys_m4 = $mark->m4;
                $mark->sys_m5 = $mark->m5;
                $mark->marks_total          = (is_numeric($mark->m1)? $mark->m1 : 0)  + (is_numeric($mark->m2)? $mark->m2 : 0) + (is_numeric($mark->m3)?  $mark->m3 : 0) + (is_numeric($mark->m4)? $mark->m4 : 0) + (is_numeric($mark->m5)?  $mark->m5 : 0);
                $mark->sys_marks_total      = $mark->marks_total;
                // $mark->platform_id          = CustomClass::$Platform_Web;
                // $mark->mark_update_count    = $mark->mark_update_count + 1;
                // $mark->sync_at              = date('Y-m-d H:i:s');
                $mark->save();
            }

            $msg =AppMessage::$MARK_SUCCESS;         


            
        } catch (Exception $e) {
            Log::error('EvalController - storeProgram : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";         
        }
        if($isnext==0)
        {
            //Session::flash('msgSuccess', $msg);             
            return $this->viewProgram(Helper::encrypt($mark->participant_id),$msg);
            //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($mark->abs_id)) .'#msg')
              //                      ->with('markSuccess',$msg);    
        }
        
                 
    }



    //Program Previous Next marks abstracts
    public function PreviousNextProgram($is_next,$program_id,$participant_id,$mark_id=null){      

        try {

            $evaluator_id   = CustomClass::getUserId();
            $result = ProgramMark::usp_prev_next_evaluation_program($evaluator_id,$program_id,$participant_id);
            
            $prev_participant_id =  $result[0]->prev;
            $next_participant_id =  $result[0]->next;  


            if($is_next == 1)
            {
                if($mark_id !=null)
                {                    
                    $this->storeProgram($mark_id,1);
                }
                if($next_participant_id>0)
                {
                    return  $this->viewProgram(Helper::encrypt($next_participant_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($next_abs_id)));                                            
                }
                else
                {
                    return  Redirect::to('eval/program/index');  
                }
            }
            else
            {
                if($prev_participant_id>0)
                {
                    return  $this->viewProgram(Helper::encrypt($prev_participant_id));
                    //return  Redirect::to('eval/ic/view/'.urldecode(Helper::encrypt($prev_abs_id)));    
                }
                else
                {
                    return  Redirect::to('eval/program/index');  
                }                    
            }
            
        } catch (Exception $e) {
            Log::error('EvalController - PreviousNextProgram : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";   
            return  Redirect::to('eval/program/index')->with('msgError',$msg);        
        }
        
    }


    //*********************************************** Program ***********************************************//
    
     public function TalentSearchMarksReport($program_id){      

      try {
            $results = ProgramMark::talent_search_program_marks_report($program_id);
           
            return View::make('evaluation.talent_search_program_marks_report')->with('results',$results);
            
        } catch (Exception $e) {
            Log::error('EvalController - TalentSearchMarksReport : '.$e->getMessage()); 
            $msg ="Sorry! Unable to process your request.";   
            return  Redirect::to('eval/program/index')->with('msgError',$msg);        
        }
    }

}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists