File: /var/www/vhost/disk-apps/sigedo-qas.allup.com.co/app/Http/Controllers/UserprogramsController.php
<?php
namespace App\Http\Controllers;
use DB;
use App\User;
use App\Service;
use App\Program;
use App\Rotation;
use App\Covenant;
use Carbon\Carbon;
use App\Institution;
use App\Userprogram;
use App\Covenantprogram;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Database\Eloquent\Builder;
class UserprogramsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index($user_id)
{
abort_unless(\Gate::allows('userprogram_access'), 403);
$user = User::with(['userprograms'])->findOrFail($user_id);
return view('userprograms.list', compact('user'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create($user_id)
{
abort_unless(\Gate::allows('userprogram_create'), 403);
$institutions = Institution::where('active', true)->get();
$user_detail = User::select('id','name','last_name')->findOrFail($user_id);
return view('userprograms.create', compact('institutions','user_id','user_detail'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request, $user_id)
{
abort_unless(\Gate::allows('userprogram_create'), 403);
$exists = Userprogram::where([
['user_id', $user_id],
['covenantprogram_id', $request->input('covenantprogram_id')],
['service_id', $request->input('service_id')],
])->first();
if (!$exists) {
$covenantprogram = Covenantprogram::where('id', $request->input('covenantprogram_id'))->first();
$data = Userprogram::create([
"user_id" => $user_id,
"program_id" => $covenantprogram->program_id,
"rotation_id" => $covenantprogram->rotation_id,
"covenant_id" => $covenantprogram->covenant_id,
"institution_id" => $request->input('institution_id'),
"service_id" => $request->input('service_id'),
"covenantprogram_id" => $request->input('covenantprogram_id'),
"rotation_start_date" => $request->input('rotation_start_date'),
"rotation_end_date" => $request->input('rotation_end_date'),
]);
if ($data) {
return response(array("status" => true, "type" => "success", "title" => "", "message" => __('created_successfully'), "data" => null));
} else {
return response(array("status" => false, "type" => "error", "title" => "Oops...", "message" => __('error_creating'), "data" => null));
}
}else{
return response(array("status" => false, "type" => "error", "title" => "Oops...", "message" => __('already_exists_userprograms')));
}
}
/**
* Display the specified resource.
*
* @param int $user_id
* @return \Illuminate\Http\Response
*/
public function show($user_id)
{
abort_unless(\Gate::allows('userprogram_show'), 403);
return redirect()->back();
}
/**
* Show the form for editing the specified resource.
*
* @param int $user_id
* @return \Illuminate\Http\Response
*/
public function edit($user_id,$userprogram_id)
{
abort_unless(\Gate::allows('userprogram_edit'), 403);
$userprogram = Userprogram::with('covenant')->findOrFail($userprogram_id);
$institutions = Institution::where('active', true)->get();
return view('userprograms.edit', compact('userprogram','institutions'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $user_id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $user_id, $userprogram_id)
{
abort_unless(\Gate::allows('userprogram_edit'), 403);
$exists = Userprogram::where([
['id', '!=', $userprogram_id],
['user_id', $user_id],
['covenantprogram_id', $request->input('covenantprogram_id')],
['service_id', $request->input('service_id')],
])->first();
if (!$exists) {
$covenantprogram = Covenantprogram::where('id', $request->input('covenantprogram_id'))->first();
$data = Userprogram::where('id', $userprogram_id)->update([
"user_id" => $user_id,
"program_id" => $covenantprogram->program_id,
"rotation_id" => $covenantprogram->rotation_id,
"covenant_id" => $covenantprogram->covenant_id,
"institution_id" => $request->input('institution_id'),
"service_id" => $request->input('service_id'),
"covenantprogram_id" => $request->input('covenantprogram_id'),
"rotation_start_date" => $request->input('rotation_start_date'),
"rotation_end_date" => $request->input('rotation_end_date'),
]);
if ($data) {
return response(array("status" => true, "type" => "success", "title" => "", "message" => __('updated_successfully'), "data" => null));
} else {
return response(array("status" => false, "type" => "error", "title" => "Oops...", "message" => __('error_updating'), "data" => null));
}
}else{
return response(array("status" => false, "type" => "error", "title" => "Oops...", "message" => __('already_exists_userprograms')));
}
}
/**
* Remove the specified resource from storage.
*
* @param int $user_id
* @return \Illuminate\Http\Response
*/
public function destroy($userprogram_id)
{
abort_unless(\Gate::allows('userprogram_destroy'), 403);
DB::beginTransaction();
try {
$userprogram = Userprogram::findOrFail($userprogram_id);
if ($userprogram->delete()) {
DB::commit();
return response(array("status" => true, "type" => "success", "title" => "", "message" => __('deleted_successfully'), "data" => null));
} else {
DB::rollback();
return response(array("status" => false, "type" => "error", "title" => "Oops...", "message" => __('error_removing'), "data" => null));
}
} catch (\Illuminate\Database\QueryException $e) {
DB::rollback();
return response(array("status" => false, "type" => "error", "title" => "Oops...", "message" => __('delete_relation_data'), "data" => null));
}
}
public function listCovenants($institution_id)
{
try {
$covenants = Covenant::where('institution_id', $institution_id)->get();
return response(array("status" => true, "type" => "success", "title" => "", "message" => "", "data" => $covenants));
} catch (\Exception $e) {
return response(array("status" => false, "type" => "error", "title" => "Oops...", "message" => __('error_request'), "data" => $e->getMessage()));
}
}
public function listCovenantprograms($covenant_id)
{
try {
$covenant = Covenant::with(['covenantprograms'])->findOrFail($covenant_id);
return response(array("status" => true, "type" => "success", "title" => "", "message" => "", "data" => $covenant));
} catch (\Exception $e) {
return response(array("status" => false, "type" => "error", "title" => "Oops...", "message" => __('error_request'), "data" => $e->getMessage()));
}
}
public function listServices($covenantprogram_id)
{
try {
$covenantprogram = Covenantprogram::with(['services'])->findOrFail($covenantprogram_id);
return response(array("status" => true, "type" => "success", "title" => "", "message" => "", "data" => $covenantprogram));
} catch (\Exception $e) {
return response(array("status" => false, "type" => "error", "title" => "Oops...", "message" => __('error_request'), "data" => $e->getMessage()));
}
}
}