<?php

namespace App\Http\Controllers\Physician;

use Illuminate\Http\Request;
use App\Models\CheifComplainTypes;
use App\Models\Clinics;
use App\Models\Roles;
use App\Models\FormEnteries;
use App\Models\QuestionCategories;
use DateTime;
use App\Http\Controllers\Controller;
use Auth;
use App\User;
use App\Helpers\CommonHelper;
use Illuminate\Support\Facades\Config;
use DB;

class QuestionCategoriesController extends Controller
{
	/**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable 
     */

    public function index()
    {   
    	
        return view('physician.questions.categories.listing');
    }

    public function ajaxListing(Request $request)
    {   
      $_getParams             = $_GET;
      $params                 = CommonHelper::_processDataTableRequest($_getParams);
      
      $draw                   = $params['draw'];      
      $offset                 = $params['offset'];
      $searchKeyword          = $params['search_keyword'];
      $sortColumn             = $params['sort_column'];
      $sortOrderDirection     = $params['sort_direction'];
      $recordsPerPage         = $params['records_per_page'];

  	 
      $objQuestionCategories  = new QuestionCategories();
      $recordsTotal           = $objQuestionCategories->count();
      $recordsFiltered        = $recordsTotal;
      if($searchKeyword)
      {           
          $objQuestionCategories = $objQuestionCategories->where(function($query) use ($searchKeyword) 
          {
              $query->orWhere('title', 'like', '%'.$searchKeyword.'%');
              
          });
      }
      $recordsFiltered        = $objQuestionCategories->count();
      $objQuestionCategories  = $objQuestionCategories->orderby('question_order', 'ASC')->get();
      $listData = array(); 
      //dd($objUsers);die;         
      foreach ($objQuestionCategories as $row) 
      { 
        $deletePath = route('questions_categories_delete', $row->id);
        $editPath   = route('questions_categories_save', $row->id);

        $tplActions  = <<<EOT
            <a title="Edit" class="la la-pencil" href="$editPath" value="edit"><i class="" aria-hidden="true"></i></a>
            <a title="Delete" class="ti-trash" onclick="return confirm('Are you sure want to delete this record?')" href="$deletePath"><i class="" aria-hidden="true"></i></a>
EOT;
        $tempArray  = array();
        // $tempArray[]    = $row->id;
        $tempArray[]    = $row->title;
        $tempArray[]    = $row->question_order;
        $tempArray[]    = $tplActions;
        $listData[]     = $tempArray;
      }
      $data = array(
          "draw"            => $draw,
          "recordsTotal"    => $recordsTotal,
          "recordsFiltered" => $recordsFiltered,
          "data"            => $listData
      );
      
      return response()->json($data);
    }

    public function add(Request $request)
    {   
      if($request->input('btn-submit')) 
      {
        //Add validation here  
        $questionCategories = new QuestionCategories();
        $this->save($request,$questionCategories);  
        return redirect(route('questions_categories'))->with('success', 'Question Category has been saved successfully!');
      }
      return view('physician.questions.categories.form');
    }

    public function save(Request $request,$id=0)
    {   
      $heading = "Add New Question Category";
      $categoryData = new QuestionCategories();
      $route = route('questions_categories_save');
      if($id)
      {
          $heading = "Edit Question Category";
          $categoryData = QuestionCategories::find($id);
          $route = route('questions_categories_save',$id);

      }
      if($request->input('btn-submit')) 
      {
        //Add validation here  
        $categoryData->title          = $request->input('title');
        $categoryData->question_order = $request->input('question_order');
        $categoryData->department_id  = Auth::user()->department_id;
        $categoryData->added_by_id    = Auth::user()->id;
        $categoryData->save();
          
        return redirect(route('questions_categories'))->with('success', 'Question Category has been saved successfully!');
      }
      //dd($categoryData->title);die;
      return view('physician.questions.categories.form',['categoryData'=>$categoryData,'route'=>$route, 'heading'=>$heading]);
    }

    public function deleteCategories($id)
    {
      if($id)
      {   
        $questionCategories   = QuestionCategories::find($id);
        if(!$questionCategories)
        {
            // Redirect to base
            return redirect(route('questions_categories'));
        }
        $questionCategories->where('id', $id)->delete();
        return redirect(route('questions_categories'))->with('success', 'Question Category has been deleted successfully!');
          
      }
    }

}