DispositionPlanController.php 4.88 KB
<?php namespace App\Http\Controllers;

use Auth;
use Input;
use Config;
use Session;
use DB;
use App\Services\FormBuilder;
use Illuminate\Http\Request;
use Response;
use App\Models\Disposition;
use App\Models\SubDisposition;
use App\Models\DispositionPlan;
use App\Models\DispositionPlanConfig;

class DispositionPlanController extends Controller {


	public function __construct()
	{
	  $this->middleware('auth');
	  $this->middleware('module_access');
	}

	public function index()
	{
	  $data['dispositionPlan']= DispositionPlan::join('disposition_plan_config', 'disposition_plan.id',   '=', 'disposition_plan_config.dispo_plan_id')
					->select('disposition_plan.id as dispositionPlanId', 'disposition_plan.name as name','disposition_plan.status AS status',
						DB::raw('count(*) as totalDisposition, disposition_plan_config.id'),
						DB::raw('GROUP_CONCAT(disposition_plan_config.disposition) as disposition, disposition_plan_config.disposition'))
					->groupBy('disposition_plan_config.dispo_plan_id')
					//->where('status','active')
					->get();

			return view("layout.module.dispositionplan.index", $data);
	}
	public function create()
	{
	   $data['dispositionEntities'] = Disposition::join('sub_disposition', 'disposition.id',   '=', 'sub_disposition.dispo_id')
					->select('disposition.id as dispoId', 'disposition.name as disposition','disposition.code as code','disposition.status AS status',
						DB::raw('count(*) as totalSubDispo, sub_disposition.id'),
						DB::raw('GROUP_CONCAT(sub_disposition.name) as sunDispoName, sub_disposition.name'))
					->groupBy('sub_disposition.dispo_id')
					->where('status','active')
					->get();

	  return view('layout.module.dispositionplan.create', $data);
	}
	public function store(Request $request)
	{
		$action = Input::get("action");

		if($action == 'isExists'){
			$plan = Input::get("plan");
			$exists=DispositionPlan::where("name","=",$plan)->first();

			if($exists){
				$planId = Input::get("dispositionPlanId");
				if($planId == $exists->id){
					return "false";
				}
				return "true";
			}else{
				return "false";
			}
		}

		if($action == 'createDispositionPlan'){
			$plan = Input::get("plan");
			$dispositionList = Input::get("disposition");
			$subDisposition = Input::get("subDisposition");
			$status = Input::get("status");

			$dispositionPlan = DispositionPlan::create([
				'name' => $plan,
				'status' => $status,
				'created_at' => date("Y-m-d H:i:s"),
				'updated_at' => date("Y-m-d H:i:s")
			]);

			foreach ($dispositionList as $key => $disposition) {
				$dispositionPlanConfig = DispositionPlanConfig::create([
					'dispo_plan_id' => $dispositionPlan->id,
					'disposition' => $disposition,
					'sub_disposition' => implode(",", $subDisposition[$key]),
					'created_at' => date("Y-m-d H:i:s"),
					'updated_at' => date("Y-m-d H:i:s")
				]);
			}
	       	return;
		}

		if($action == 'updateDispositionPlan'){
			$dispositionPlanId = Input::get("dispositionPlanId");
			$plan = Input::get("plan");
			$dispositionList = Input::get("disposition");
			$subDisposition = Input::get("subDisposition");
			$status = Input::get("status");

			DispositionPlan::where('id', $dispositionPlanId)
		          ->update(['name' => $plan,
		      				'status' => $status,
		      				'updated_at' => date("Y-m-d H:i:s")
		      			]);

		    DispositionPlanConfig::where('dispo_plan_id', $dispositionPlanId)->delete();

		    foreach ($dispositionList as $key => $disposition) {
				$dispositionPlanConfig = DispositionPlanConfig::create([
					'dispo_plan_id' => $dispositionPlanId,
					'disposition' => $disposition,
					'sub_disposition' => implode(",", $subDisposition[$key]),
					'created_at' => date("Y-m-d H:i:s"),
					'updated_at' => date("Y-m-d H:i:s")
				]);
			}
	       	return;
		}
	}
	public function show($id)
	{

	}
	public function edit($id)
	{
		$data['dispositionEntities'] = Disposition::join('sub_disposition', 'disposition.id',   '=', 'sub_disposition.dispo_id')
					->select('disposition.id as dispoId', 'disposition.name as disposition','disposition.code as code','disposition.status AS status',
						DB::raw('count(*) as totalSubDispo, sub_disposition.id'),
						DB::raw('GROUP_CONCAT(sub_disposition.name) as sunDispoName, sub_disposition.name'))
					->groupBy('sub_disposition.dispo_id')
					->where('status','active')
					->get();

		$data['dispositionPlan']= DispositionPlan::join('disposition_plan_config', 'disposition_plan.id',   '=', 'disposition_plan_config.dispo_plan_id')
					->select('disposition_plan.id as dispositionPlanId', 'disposition_plan.name as name','disposition_plan.status AS status','disposition_plan_config.disposition as disposition','disposition_plan_config.sub_disposition as sub_disposition')
					->where('disposition_plan.id','=',$id)
					->get();


		return view('layout.module.dispositionplan.edit',$data);
	}
	public function update($id)
	{
	  
	}
	public function destroy($id)
	{
	}
	public function dashboard()
	{
	}
}