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/BOICController.php

<?php

class BOICController 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

    
    public function bo_path()
    {
        return "backoffice/abstracts/";
    }


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

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

        try {
            if($id != null )
                $id = intval(urldecode(Helper::decrypt($id)));
        } catch (Exception $e) {
            return Redirect::to('bo/dashboard');
        }

		if($id>0)
		{

            $result    = Abstracts::usp_get_abstracts(null,null,null,null,$id,null,null,null,null,null,null,null);
            $ic        = $result['abstracts'][0];
            $authors   = $result['authors'];
            $ci = null;
            foreach ($authors as $key => $value) {
                if($value->role_id==CustomClass::$ChiefInstructor)
                {
                    $ci =$value;
                }
            }
		}

        return View::make($this->bo_path() . 'ic.ic')
        			->with('ic',$ic)
        			->with('categories',$categories)
        			->with('leves',$leves)
        			->with('ci',$ci);
    }

    public function is_closed()
    {
        $ics = Abstracts::where('abs_type','IC')->where('user_id',CustomClass::getUserId())->get();
        if(!(CustomClass::$IC_Count > count($ics)))
        {
            return true;
        }   
        else
        {
            return false;
        }
    }


    //IC Store
    //Sridhar on 24 Apr 2017 12:48 PM    
    public function store()
    {
    	try {

            //for Response
    		$arr  = [];
    		$code = 0;
    		$msg  = "";
    		$data = "";

            //form ajax all steps
    		$ic_id      = intval(Input::get('hdnId'));
            $is_next    = intval(Input::get('hdnIsNext'));
            $step       = intval(Input::get("hdnStep"));

            $is_edit    = true;

            //for first step only 
            $categories = array('' => '--select--') + Category::IC();        
            $leves      = array('' => '--select--') + CustomClass::$IC_LEVELS;

            $ci = Abstracts::usp_get_authors(null,CustomClass::$IC,CustomClass::$ChiefInstructor,$ic_id,null,null);
            $ci = $ci[0];            

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

            if($is_next == 1)
            {
                if($step ==1)
                {                     
                    $ic->abs_type       = CustomClass::$IC;
                    $ic->category_id    = Input::get('ddlSection');
                    //$ic->original_category_id= Input::get('ddlSection');
                    $ic->level          = Input::get('ddlLevel');       
                    $ic->duration       = CustomClass::$IC_Duration;    
                    $ic->user_id        = Input::get('hdnCI');                     
                    $ic->save();

                    //check and save chief instructor in author table 
                    $author = Authors::where('abs_id',$ic->abs_id)->where('role_id',CustomClass::$ChiefInstructor)->first();
                    if($author == null)
                    {
                        $author = new Authors();
                        $author->user_id = Input::get('hdnCI');   
                        $author->abs_id  = $ic->abs_id;
                        $author->role_id = CustomClass::$ChiefInstructor;
                        $author->save();
                    }

                    $code = 1;
                    $data = View::make($this->bo_path() . 'ic.step2')->with('ic',$ic)->render();
                }                 

                if($step ==2)
                {                       
                    $ic->title      = Helper::trimAndTruncate(Input::get('txtTitle'),300);  
                    $ic->synopsis   = Helper::trimAndTruncate(Input::get('txtSynopsis'),3000);  
                    $ic->resume     = Helper::trimAndTruncate(Input::get('txtResume'),1200);                    
                    $ic->save();

                    $arr = $this->get_COI_Count_and_duration($ic_id,$ic,$ci->user_id);

                    $code = 1;
                    $data = View::make($this->bo_path() .'ic.step3')->with('ic',$ic)
                                ->with('cois',$arr["cois"])
                                ->with('ci',$ci)
                                ->with('isMaxCount',$arr["isMaxCount"])
                                ->with('isMaxDuration',$arr["isMaxDuration"])                                
                                ->with('totalDuration',$arr['totalDuration'])->render();
                  
                }      
                if($step ==3)
                {                    
                    $arr = $this->get_COI_Count_and_duration($ic_id,$ic,$ci->user_id);
                    if(count($arr["cois"])>0)
                    {
                        $code = 1;
                        $data = View::make($this->bo_path() . 'ic.step4')->with('ic',$ic)
                                    ->with('cois',$arr["cois"])
                                    ->with('categories',$categories)
                                    ->with('ci',$ci)                                    
                                    ->with('isMaxCount',$arr["isMaxCount"])
                                    ->with('isMaxDuration',$arr["isMaxDuration"])
                                    ->with('totalDuration',$arr['totalDuration'])->render();         
                    }
                    else
                    {
                        $code   = 0;
                        $msg    = AppMessage::$IC_COI_atleast_1;    
                        $data   = "";
                    }
                
               }                
               if($step ==4)
               {   
                   
                    if(!($ic->abs_no>0))
                    {
                        $is_edit            = false;                        
                        $ic->submitted_at   = date('Y-m-d H:i:s');
                        $ic->status_id      = CustomClass::$Submitted;                        
                        $result             =    Abstracts::usp_generate_abs_no(CustomClass::$IC,$ic->abs_id);
                        $ic->abs_no         = $result[0]->abs_no;
                    }                    
                    
                    $ic->save();    

                    //IC ci mail    
                    // $user = App::make('UserController')->getUserDetails($ic->user_id);
                    $arr = $this->get_COI_Count_and_duration($ic_id,$ic,$ci->user_id);

                    // if($is_edit)
                    //     $this->ic_ci_mail_data($user,$ic,$arr['cois'],$categories,$arr['totalDuration']);                           
                    // else
                    //     $this->ic_ci_mail($user,$arr["cois"],$ic,$categories);    

                    // foreach ($arr["cois"] as $key => $value) {
                    //     if($ic->user_id != $value->user_id && $value->consent_status_id == CustomClass::$Yet_to_Consent)
                    //     {
                    //             $this->ic_coi_mail($user,$ic,$value);                         
                    //     }
                    // }

                    $code = 1;
                    $data = View::make($this->bo_path() . 'ic.success')->with('ic',$ic)->with('cois',$arr["cois"])->render();
                
              }
            }
            else 
            {
                if($step == 2)
                {   
                    $code = 1;
                    $data = View::make($this->bo_path() . 'ic.step1')
                                ->with('ic',$ic)
                                ->with('categories',$categories)
                                ->with('leves',$leves)
                                ->with('ci',$ci)->render();
                }   
                if($step == 3)
                {   
                    $code = 1;
                    $data = View::make($this->bo_path() .'ic.step2')
                                ->with('ic',$ic)->render();
                }   
                if($step == 4)
                {   
                    $arr = $this->get_COI_Count_and_duration($ic_id,$ic,$ci->user_id);
                    $code = 1;
                    $data = View::make($this->bo_path() .'ic.step3')->with('ic',$ic)
                                ->with('cois',$arr["cois"])
                                ->with('isMaxCount',$arr["isMaxCount"])
                                ->with('isMaxDuration',$arr["isMaxDuration"])
                                ->with('totalDuration',$arr['totalDuration'])->render();
                }                
            }
    		
    	} catch (Exception $e) {
  			Log::error('ICController - store :'.$e->getMessage());   		
  			$msg =AppMessage::$GENERAL_ERROR;
    	}

    	$arr = ['data' => $data, 'code' => $code, 'msg' => $msg];
        return Response::json($arr); 
    }

    //COI Store
    public function storeCOI()
    {
        try {

            //for Response
            $arr = [];
            $code = 0;
            $msg = "";
            $data = "";
            
            $ic_id = intval(Input::get('hdnICId'));
            $coi_user_id = intval(Input::get('hdnUserId'));
            $coi_id = intval(Input::get('hdnCOIId'));

            $ci = Abstracts::usp_get_authors(null,CustomClass::$IC,CustomClass::$CoInstructor,$ic_id,null,null);
            $ci = $ci[0];     

            if($coi_id >0)
            {
                $coi =  Authors::find($coi_id);
            }            
            else
            {
                $coi = new Authors();
            }
            $coi->role_id       =     CustomClass::$CoInstructor;
            $coi->abs_id        =     $ic_id;
            $coi->user_id       =     $coi_user_id;
            $coi->topic         =     Input::get('txtTopic');
            $coi->duration      =     Input::get('txtDuration');
            $coi->order_no      =     Input::get('txtOrder');

            if($coi_user_id == $ci->user_id) //Auto consent
            {
                $coi->consent_status_id   =     CustomClass::$Consent_Accepted;
            }
            $coi->is_present    =     1;

            $ic = Abstracts::find($ic_id);   

            //use for validation
            $arr = $this->get_COI_Count_and_duration($ic_id,$ic,$ci->user_id,$coi);

            if($arr["isMaxCount"])
            {
                $code = 0;
                $msg  = AppMessage::$IC_COI_Count;
            } 
            else if($arr["isMaxDuration"])
            {
                $code = 0;
                $msg  = AppMessage::$IC_COI_Duration;
            }
            else 
            {
                $code = 1;
                $coi->save();
            }
            
            //use for get coi list
            $arr = $this->get_COI_Count_and_duration($ic_id,$ic,$ci->user_id);
            
            $data = View::make($this->bo_path().'ic.step3')
                                ->with('ic',$ic)
                                ->with('cois',$arr["cois"])
                                ->with('isMaxCount',$arr["isMaxCount"])
                                ->with('isMaxDuration',$arr["isMaxDuration"])
                                ->with('totalDuration',$arr['totalDuration'])->render();
            
            
        } catch (Exception $e) {
            Log::error('BOICController - storeCOI :'.$e->getMessage());          
            $msg =AppMessage::$GENERAL_ERROR;
        }

        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];
        return Response::json($arr);
    }

    //Store Panel Duration
    public function storePanelDuration(){
         try {

           $arr   = [];
           $data  = "";
           $msg   = "";
           $code  = 0;

           $ic_id  = intval(Input::get('ic_id',0));
           $panel  = intval(Input::get('panel',0));

           $ic  = Abstracts::find($ic_id);           
           $ic->panel_discussion = $panel;

           $arr = $this->get_COI_Count_and_duration($ic_id,$ic,$ic->user_id);

           // if($arr["isMaxCount"])
           // {
           //      $code = 0;
           //      $msg  = AppMessage::$IC_COI_Count;
           //  } 
           //else if(($arr["totalDuration"] + $panel) > CustomClass::$IC_Duration)
           //else

             if($arr["isMaxDuration"])
            {
                $code = 0;
                $msg  = AppMessage::$IC_COI_Duration;
            }
            else 
            {
                $code = 1;
           
                $ic->save();
            }

            $data = View::make($this->bo_path() . 'ic.step3')
                                ->with('ic',$ic)
                                ->with('cois',$arr["cois"])
                                ->with('isMaxCount',$arr["isMaxCount"])
                                ->with('isMaxDuration',$arr["isMaxDuration"])
                                ->with('totalDuration',$arr['totalDuration'])->render();
           

        } catch (Exception $e) {
            Log::error('UserController - CheckDuration '.$e->getMessage());
            $msg =AppMessage::$GENERAL_ERROR;

        }
        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];

        return Response::json($arr); 
    }


    //IC Insert CI Success mail
    public function ic_ci_mail($user,$cois,$ic,$categories)
    {
        if(empty($user->email))
        {
            return;
        }
        if(CustomClass::$IsEmailEnabled)
        {
         $isMailSend  =  Mail::send('emails.ic.ic_ci', array('user' => $user,'ic' =>$ic,'categories'=>$categories,'cois'=>$cois), function($message) use ($user,$ic)
                            {                             
                                                                          
                                $message->subject(sprintf(Subject::$ic_ci,$ic->abs_no));     
                                if(CustomClass::$IsEmailTest)
                                {
                                    $message->to(CustomClass::$TestMailId);   
                                }
                                else
                                {
                                    $message->to($user->email, $user->first_name);   
                                    $message->cc(CustomClass::$BackupId);                              
                                }
                                 
                            });  
        }
    } 

    //Edit Insert CI Success mail
    public function ic_ci_mail_data($user,$ic,$cois,$categories,$totalDuration)
    {
        if(empty($user->email))
        {
            return;
        }
        if(CustomClass::$IsEmailEnabled)
        {
         $isMailSend  =  Mail::send('emails.ic.ic_ci_data', array('user' => $user,'ic' =>$ic,'cois'=>$cois,'categories'=>$categories,'totalDuration'=>$totalDuration), function($message) use ($user,$ic)
                            {  
                                $message->subject(sprintf(Subject::$ic_ci,$ic->abs_no));   
                                if(CustomClass::$IsEmailTest)
                                {
                                    $message->to(CustomClass::$TestMailId);   
                                }
                                else
                                {
                                    $message->to($user->email, $user->first_name);                   
                                    $message->cc(CustomClass::$BackupId);                      
                                }
                            });  
        }
    } 

    //IC COI Mail Send with Consent
    public function ic_coi_mail($ciuser,$ic,$coi)
    {
        if(empty($coi->email))
        {
            return;
        }
        if(CustomClass::$IsEmailEnabled)
        {
             $isMailSend  =  Mail::send('emails.ic.ic_coi', array('ciuser' => $ciuser,'ic' =>$ic,'coi' =>$coi), function($message) use ($coi,$ic)
                                {   
                                    $message->subject(sprintf(Subject::$ic_coi,$ic->abs_no));   
                                    if(CustomClass::$IsEmailTest)
                                    {
                                        $message->to(CustomClass::$TestMailId);   
                                    }
                                    else                         
                                    {
                                        if(!empty($coi->email))
                                        {
                                            $message->to($coi->email, $coi->name);                                                                                     
                                            $message->cc(CustomClass::$BackupId);                       
                                        }
                                    }
                                        
                                });  
        }
    }


    //IC Consent Mail
    public function ic_consent_mail($ciuser,$ic,$coi)
    {   
        if(empty($ciuser->email))
        {
            return;
        }     
        
        if(CustomClass::$IsEmailEnabled)
        {
            if($coi->consent_status_id == CustomClass::$Consent_Accepted)
            {
                $isMailSend  =  Mail::send('emails.ic.ic_consent_yes', array('ciuser' => $ciuser,'ic' =>$ic,'coi' =>$coi), function($message) use ($ciuser,$coi,$ic)
                                    {                             
                                        $message->subject(sprintf(Subject::$ic_consent_yes,$ic->abs_no));                         
                                        if(CustomClass::$IsEmailTest)
                                        {
                                            $message->to(CustomClass::$TestMailId);   
                                        }
                                        else
                                        {
                                            $message->to($ciuser->email,$ciuser->name);
                                            //$message->to($coi->email,$coi->name);                                                                                                                                                                  
                                            $message->cc(CustomClass::$BackupId);    
                                        }
                                        
                                    });          
            }
            else if($coi->consent_status_id == CustomClass::$Consent_Rejected)
            {
                $isMailSend  =  Mail::send('emails.ic.ic_consent_no', array('ciuser' => $ciuser,'ic' =>$ic,'coi' =>$coi), function($message) use ($ciuser,$coi,$ic)
                                    {    

                                        $message->subject(sprintf(Subject::$ic_consent_no,$ic->abs_no));        
                                        if(CustomClass::$IsEmailTest)
                                        {
                                            $message->to(CustomClass::$TestMailId);   
                                        }                         
                                        else
                                        {
                                            $message->to($ciuser->email,$ciuser->name);
                                            //$message->to($coi->email,$coi->name);                                                                                                                                                                                                             
                                            $message->cc(CustomClass::$BackupId);                 
                                        }
                                    });          
            }

        }
    }



    //IC Get Max ICNo Plus  one
    public function GetMaxICNoPlusOne()
    {
         $icno = Abstracts::max('abs_no');
         return (intval($icno) + 1); 
    }


    //COI Remove
    public function removeCOI()
    {
        try {

            //for Response
            $arr = [];
            $code = 0;
            $msg = "";
            $data = "";

            $ic_id = intval(Input::get('ic_id'));
            $coi_id = intval(Input::get('coi_id'));
            
            $coi =  Authors::find($coi_id);
            $coi->delete();
            
            
            $ic = Abstracts::find($ic_id);         

            $arr = $this->get_COI_Count_and_duration($ic_id,$ic,$ic->user_id);

            $code = 1;
            $data = View::make($this->bo_path().'ic.step3')
                                ->with('ic',$ic)
                                ->with('cois',$arr["cois"])
                                ->with('isMaxCount',$arr["isMaxCount"])
                                ->with('isMaxDuration',$arr["isMaxDuration"])
                                ->with('totalDuration',$arr['totalDuration'])->render();
            
            
        } catch (Exception $e) {
            Log::error('BOICController - removeCOI :'.$e->getMessage());          
            $msg =AppMessage::$GENERAL_ERROR;
        }

        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];
        return Response::json($arr); 

    }

    //Get COI and COI Count and Duration count for validation 
    public function get_COI_Count_and_duration($ic_id,$ic,$ci_user_id,$coi= null)
    {           
            $isMaxCount     = false;
            $isMaxDuration  = false; 


                //$cois = DB::select('call usp_getCOIByICId('.$ic_id.')');                
                //$cois = DB::select("call usp_get_authors (null,'".CustomClass::$IC ."',". CustomClass::$CoInstructor .",".$ic_id.")");   
                $cois = Abstracts::usp_get_authors(null,CustomClass::$IC,CustomClass::$CoInstructor,$ic_id,CustomClass::$UserType_IC_COI,null);

                $coi_uids       = [];
                $coi_duration   = [];                

                // add panel_discussion from ic
                array_push($coi_duration,intval($ic->panel_discussion));

                if(!empty($coi))
                {
                    array_push($coi_duration, $coi->duration);
                }

                foreach ($cois as $key => $value) {                    
                    if($value->user_id != $ci_user_id)
                    {                        
                        if(!empty($coi))
                        {                                                                     
                            if($coi->author_id != $value->author_id)
                                array_push($coi_uids, $value->user_id);                            
                        }
                        else
                        {
                            array_push($coi_uids, $value->user_id);    
                        }                        
                        
                    }      
                    if(!empty($coi))
                    {                        
                        if($coi->author_id != $value->author_id)
                            array_push($coi_duration, $value->duration);
                    }
                    else
                    {
                         array_push($coi_duration, $value->duration);   
                    }
                }

                if(isset($coi) &&  $coi->user_id == $ci_user_id)
                {
                    $isMaxCount = false;
                }
                else if(count(array_unique($coi_uids)) >=  CustomClass::$IC_COI_Count)
                {
                    $isMaxCount = true;
                }

                if(!empty($coi))
                {
                    if($coi->user_id == $ci_user_id)
                    {
                      $isMaxCount = false;   
                    }    
                    else if(in_array($coi->user_id, $coi_uids))     
                    {
                        $isMaxCount = false;      
                    }
                }

                //var_dump($coi_duration);
                //var_dump(array_sum($coi_duration)); 

                if(!(array_sum($coi_duration) <= CustomClass::$IC_Duration))
                {
                    $isMaxDuration = true;
                }

            return ["isMaxCount" => $isMaxCount,"isMaxDuration" => $isMaxDuration ,"cois" => $cois,'totalDuration'  => array_sum($coi_duration)];

    }

    //ic Search user 
    public function getSearchMembers(){
        try {

            $arr   = [];
            $data  = "";
            $msg   = "";            
            $code  = 0;

            $search =  Helper::trimAndTruncate(Input::get('search'),250);

            $data   = Abstracts::usp_get_authors($search,CustomClass::$IC,CustomClass::$CoInstructor,null,null,null);
            //$data = DB::select("call usp_get_authors ('".$search."','".CustomClass::$IC ."',". CustomClass::$CoInstructor .",null)");   
            //$data = DB::select("call usp_SearchMembersForIC ('".$search."')");   
           
            if(empty($data))
            {
                $data = "";
                $code = 0;
                $msg  = "record not found";
            }
            else
            {                
                $code = 1;
                $msg  = "";
            }


        } catch (Exception $e) {
            Log::error('ICController - getSearchMembers '.$e->getMessage());
            $msg =AppMessage::$GENERAL_ERROR;

        }
        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];

         return Response::json($arr); 
    }

    //Get member Details by COI Userid and COI id
    public function getMemberDetailsById(){
        try {

            $arr   = [];
            $data  = "";
            $msg   = "";
            $code  = 0;

            $search_user_id = Input::get('searchuserid');            
            $is_ci          = Input::get('isci');
            $coi_id         = Input::get('coi_id');
            $ic_id         = Input::get('ic_id');

            // if($is_ci=="true")
            // {
            //     $search_user_id = CustomClass::getUserId();
            // }

            if(intval($coi_id) >0)
            {
                $data = User::join('users_memberships','users.user_id','=','users_memberships.user_id')
                              ->join('authors','users.user_id','=','authors.user_id')
                              ->select('users.user_id','users_memberships.membership_no','users.prefix', 'users.first_name as name','users.email','users.mobile',
                                'authors.topic','authors.duration','authors.order_no','authors.author_id')
                              ->where('authors.author_id',$coi_id)
                              ->first();
            }
            else
            {
                $data = User::join('users_memberships','users.user_id','=','users_memberships.user_id')
                                  ->select('users.user_id','users_memberships.membership_no','users.prefix', 'users.first_name as name','users.email','users.mobile')
                                  ->where('users.user_id',$search_user_id)
                                  ->first();
            }
    
           
           if(empty($data))
           {
                $data = "";
                $code = 0;
                $msg  = "";
           }           
           else
           {                
                $code = 1;
                $msg  = "";
           }

        } catch (Exception $e) {
            Log::error('ICController - getMemberDetailsById'.$e->getMessage());
            $msg =AppMessage::$GENERAL_ERROR;

        }
        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];

         return Response::json($arr); 
    }

    //ic send Reminders Consent
    public function sendRemindersConsent($ic_id = NULL){
        try {

            $arr    = [];
            $data   = "";
            $msg    = "";            
            $code   = 0;

            if(empty($ic_id))
                $ic_id  = Input::get('ic_id');


            $ic     = Abstracts::find($ic_id);            
            $user   = App::make('UserController')->getUserDetails($ic->user_id);
            $arr    = $this->get_COI_Count_and_duration($ic_id,$ic);

            foreach ($arr["cois"] as $key => $value) {
                if($ic->user_id != $value->user_id && $value->consent_status_id == CustomClass::$Yet_to_Consent)
                {
                        $this->ic_coi_mail($user,$ic,$value);                         
                }
            }
            
            $code = 1;
            $msg  = "Reminders successfully sent";


        } catch (Exception $e) {
            Log::error('ICController - sendRemindersConsent '.$e->getMessage());
            $msg =AppMessage::$GENERAL_ERROR;

        }
        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];

         return Response::json($arr); 
    }



    //IC COI Change 
    public function changeCOI($id){      
    try {     
        if($id != null )
            $id = intval(urldecode(Helper::decrypt($id)));

        $ic = null;

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

            $arr = $this->get_COI_Count_and_duration($ic->abs_id,$ic,$ic->user_id);
            $user       = App::make('UserController')->getUserDetails($ic->user_id); 


            $cois = [];

            foreach ($arr["cois"] as $key => $value) {
                //var_dump($value->consent);
                if ($value->consent_status_id == CustomClass::$Consent_Rejected)   
                {                    
                    $cois[] = $value;
                }
            }
            //var_dump($cois);
//exit();

            return View::make($this->bo_path().'ic.coi_change')
                            ->with('ic',$ic)
                            ->with('user',$user)
                            ->with('cois',$cois);

        }
         } catch (Exception $e) {
            Log::error('BOICController - changeCOI'.$e->getMessage());            
            $msg =AppMessage::$GENERAL_ERROR;
            echo $e->getMessage();
        // return Redirect::to('ic/change_coi/'.urlencode( Helper::encrypt($id)))->with('msg_err',$msg);

        }
                 
    }


    //post change coi 
    public function postChangeCOI($ic_id){
        try {            
            
            $hdn_uid  = Input::get('hdn_uid');

            $abs = Abstracts::find($ic_id);
            $ci_user_id = 0;

            if($abs != null)
            {
                $ci_user_id = $abs->user_id;
            }

            $is_change = false;
            foreach ($hdn_uid as $key => $value) {
                if(intval($value)>0)
                {
                    $is_change =true;                                        
                    $coi = Authors::find($key);                    
                    $coi->user_id= $value;
                    if($ci_user_id==$coi->user_id)
                        $coi->consent_status_id= CustomClass::$Consent_Accepted;
                    else                        
                        $coi->consent_status_id= CustomClass::$Yet_to_Consent;                    
                    $coi->save();
                }
            }

            //exit();

            $this->sendRemindersConsent($ic_id);

            if(!$is_change)                
                return Redirect::to('ic/change_coi/'.urlencode( Helper::encrypt($ic_id)))->with('msg_err','Please Change Co-Instructors.');
            else
                return View::make('msg')->with('msg',"Alternate Co-instructor(s) selected. A reminder has been sent to the selected co-instructors for their consent. <a href=". url('/dashboard')." >click here to go back to Dashboard</a>.");

        } catch (Exception $e) {
            Log::error('ICController - postChangeCOI '.$e->getMessage());            
            $msg =AppMessage::$GENERAL_ERROR;
            return Redirect::to('ic/change_coi/'.urlencode( Helper::encrypt($ic_id)))->with('msg_err',$msg);

        }
        
    }


    //FP Search user for Chief Instructor 
    public function getSearchMembersCI(){
        try {
            $arr   = [];
            $data  = "";
            $msg   = "";            
            $code  = 0;

            $search = Helper::trimAndTruncate(Input::get('search'),250);
                        
            $data   = Abstracts::usp_get_authors($search,CustomClass::$IC,CustomClass::$ChiefInstructor,null,CustomClass::$UserType_IC_CI,null); 
           
            if(empty($data))
            {
                $data = "";
                $code = 0;
                $msg  = "record not found";
            }
            else
            {                
                $code = 1;
                $msg  = "";
            }

        } catch (Exception $e) {
            Log::error('BOICController - getSearchMembersCI '.$e->getMessage());
            $msg =AppMessage::$GENERAL_ERROR;

        }
        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];

         return Response::json($arr); 
    }

    //IC Get Presenting Author
    public function getCIDetails(){
        try {

            $arr   = [];
            $data  = "";
            $msg   = "";            
            $code  = 0;

            $pa_id  =  intval(Input::get('ci_id'));

            $data   = App::make('UserController')->getUserDetails($pa_id); 
           
            if(empty($data))
            {
                $data = "";
                $code = 0;                
            }
            else
            {                
                $code = 1;
                $msg  = "";
            }

        } catch (Exception $e) {
            Log::error('BOICController - getSearchMembersCI '.$e->getMessage());
            $msg =AppMessage::$GENERAL_ERROR;

        }
        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];

         return Response::json($arr); 
    }

     //CI Remove
    public function removeCI()
    {
        try {

            //for Response
            $arr    = [];
            $code   = 0;
            $msg    = "";
            $data   = "";

            $abs_id = intval(Input::get('abs_id'));
            $ci_id = intval(Input::get('ci_id'));
            
            $ci =  Authors::where('abs_id',$abs_id)->where('user_id',$ci_id)->where('role_id',CustomClass::$ChiefInstructor)->first();

            $ci->delete();
            $code = 1;            
            
            
        } catch (Exception $e) {
            Log::error('BOICController - removeCI :'.$e->getMessage());          
            $msg =AppMessage::$GENERAL_ERROR;            
        }

        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];
        return Response::json($arr); 

    }

     //CI Store
    public function storeCI()
    {
        try {

            //for Response
            $arr = [];
            $code = 0;
            $msg = "";
            $data = "";
            
            $abs_id         = intval(Input::get('abs_id'));
            $ci_user_id     = intval(Input::get('ci_user_id')); 

            $abs            =  Abstracts::find($abs_id);
            $abs->user_id   =  $ci_user_id;
            $abs->save();

            $paauthor = Authors::where('abs_id',$abs_id)->where('role_id',CustomClass::$ChiefInstructor)->first();
            if($paauthor == null)
            {
                //presenting author            
                $pa_author = new Authors();
                $pa_author->user_id = $ci_user_id;   
                $pa_author->abs_id  = $abs_id;
                $pa_author->role_id = CustomClass::$ChiefInstructor;
                //$pa_author->consent_status_id = CustomClass::$Selected;

                $code = 1;
                $pa_author->save();                
            }
            else
            {
                 $code = 1; 
            }
            
        } catch (Exception $e) {
            Log::error('BOFPController - storePA :'.$e->getMessage());          
            $msg =AppMessage::$GENERAL_ERROR;
        }

        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];
        return Response::json($arr);
    }

     //Change COI Store
    public function changeTopicUser()
    {
        try {

            //for Response
            $arr = [];
            $code = 0;
            $msg = "";
            $data = "";            
            
            $user_id = intval(Input::get('user_id'));
            $coi_id = intval(Input::get('coi_id'));

            
            if($coi_id >0)
            {
                $coi =  Authors::find($coi_id);                                                        

                $ci = Abstracts::usp_get_authors(null,CustomClass::$IC,CustomClass::$CoInstructor,$coi->abs_id,null,null);
                $ci = $ci[0];     


                $coi->user_id       =     $user_id;                
                if($user_id == $ci->user_id) //Auto consent
                {
                    $coi->consent_status_id   =     CustomClass::$Consent_Accepted;
                }
                $coi->is_present    =     1;                
                $coi->save();
                $code = 1;  

                $ic = Abstracts::find($coi->abs_id);   

                //use for get coi list
                $arr = $this->get_COI_Count_and_duration($coi->abs_id,$ic,$ci->user_id);
                
                $data = View::make($this->bo_path().'ic.step3')
                                    ->with('ic',$ic)
                                    ->with('cois',$arr["cois"])
                                    ->with('isMaxCount',$arr["isMaxCount"])
                                    ->with('isMaxDuration',$arr["isMaxDuration"])
                                    ->with('totalDuration',$arr['totalDuration'])->render();
                                    
            }
            else
            {
                $code = 0;  
            }
            

        } catch (Exception $e) {
            Log::error('BOICController - storeCOI :'.$e->getMessage());          
            $msg =AppMessage::$GENERAL_ERROR;
        }

        $arr = ['data' => $data, 'code' => $code, 'msg' => $msg];
        return Response::json($arr);
    }


}

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