DispositionPlanController.php 3.58 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;

class DispositionPlanController extends Controller {


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

	public function index()
	{
	  $data['dispositionPlan']= Disposition::join('sub_disposition', 'disposition.id',   '=', 'sub_disposition.dispo_id')
					->select('disposition.id as dispoId', 'disposition.plan AS plan', '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')
					->get();

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

		if($action == 'isExists'){
			$plan = Input::get("plan");
			$disposition = Input::get("disposition");
			$exists=Disposition::where("plan","=",$plan)->orWhere("name","=",$disposition)->first();
			if($exists){
				return "true";
			}else{
				return "false";
			}
		}

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

			$disposition = Disposition::create([
				'plan' => $plan,
				'code' => $code,
				'name' => $disposition,
				'created_at' => date("Y-m-d H:i:s"),
				'updated_at' => date("Y-m-d H:i:s")
			]);
	       
	       	$dispoId = $disposition->id;

	       	foreach ($subDisposition as $key => $value) {
	       		$subDisposition = SubDisposition::create([
					'dispo_id' => $dispoId,
					'name' => $value,
					'created_at' => date("Y-m-d H:i:s"),
					'updated_at' => date("Y-m-d H:i:s")
				]);
	       	}
	       	return;
	      
		}

		if($action == 'updateDispositionPlan'){
			$dispoId = Input::get("dispoId");
			$plan = Input::get("plan");
			$code = Input::get("code");
			$disposition = Input::get("disposition");
			$subDisposition = Input::get("subDisposition");

			Disposition::where('id', $dispoId)
		          ->update(['plan' => $plan,
		      				'code' => $code,
		      				'name' => $disposition]);

		    SubDisposition::where('dispo_id', $dispoId)->delete();

		    foreach ($subDisposition as $key => $value) {
	       		$subDisposition = SubDisposition::create([
					'dispo_id' => $dispoId,
					'name' => $value,
					'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['dispositionPlan']= Disposition::join('sub_disposition', 'disposition.id',   '=', 'sub_disposition.dispo_id')
					->select('disposition.id AS dispoId', 'disposition.plan AS plan', '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('disposition.id','=',$id)
					->get()->first();

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