DispositionController.php 3.63 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 DispositionController extends Controller {


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

	public function index()
	{
	  $data['dispositions']= 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')
					->get();

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

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

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

			$disposition = Disposition::create([
				'code' => $code,
				'name' => $disposition,
				'status' => $status,
				'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 == 'updateDisposition'){
			$dispoId = Input::get("dispoId");
			$code = Input::get("code");
			$disposition = Input::get("disposition");
			$subDisposition = Input::get("subDisposition");
			$status = Input::get("status");

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

		    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['disposition']= 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('disposition.id','=',$id)
					->get()->first();

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