1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace App\Itil\Controllers; |
4
|
|
|
|
5
|
|
|
use App\Itil\Controllers\BaseServiceDeskController; |
6
|
|
|
use App\Itil\Models\Releases\SdReleasestatus; |
7
|
|
|
use App\Itil\Models\Releases\SdReleasepriorities; |
8
|
|
|
use App\Itil\Models\Releases\SdReleasetypes; |
9
|
|
|
use App\Itil\Models\Releases\SdLocations; |
10
|
|
|
use App\Itil\Models\Releases\SdReleases; |
11
|
|
|
use App\Itil\Requests\CreateReleaseRequest; |
12
|
|
|
use Exception; |
13
|
|
|
|
14
|
|
|
class RelesesController extends BaseServiceDeskController { |
15
|
|
|
|
16
|
|
|
public function releasesindex() { |
17
|
|
|
try { |
18
|
|
|
return view('itil::releases.index'); |
19
|
|
|
} catch (Exception $ex) { |
20
|
|
|
return redirect()->back()->with('fails', $ex->getMessage()); |
21
|
|
|
} |
22
|
|
|
} |
23
|
|
|
|
24
|
|
View Code Duplication |
public function getReleases() { |
|
|
|
|
25
|
|
|
try { |
26
|
|
|
$releses = new SdReleases(); |
27
|
|
|
$relese = $releses->select('id', 'description', 'subject', 'planned_start_date', 'planned_end_date', 'status_id', 'priority_id', 'release_type_id', 'location_id')->get(); |
|
|
|
|
28
|
|
|
return \Datatable::Collection($relese) |
29
|
|
|
->showColumns('subject', 'planned_start_date', 'planned_end_date') |
30
|
|
|
->addColumn('Action', function($model) { |
31
|
|
|
$url = url('service-desk/releases/' . $model->id . '/delete'); |
32
|
|
|
$delete = \App\Itil\Controllers\UtilityController::deletePopUp($model->id, $url, "Delete $model->subject"); |
33
|
|
|
return "<a href=" . url('service-desk/releases/' . $model->id . '/edit') . " class='btn btn-info btn-sm'>Edit</a> " |
34
|
|
|
. $delete |
35
|
|
|
. " <a href=" . url('service-desk/releases/' . $model->id . '/show') . " class='btn btn-primary btn-sm'>View</a>"; |
36
|
|
|
}) |
37
|
|
|
->searchColumns('subject', 'description') |
38
|
|
|
->orderColumns('subject', 'reason', 'impact', 'rollout_plan', 'backout_plan', 'status_id', 'priority_id', 'change_type_id', 'impact_id', 'location_id', 'approval_id') |
39
|
|
|
->make(); |
40
|
|
|
} catch (Exception $ex) { |
41
|
|
|
return redirect()->back()->with('fails', $ex->getMessage()); |
42
|
|
|
} |
43
|
|
|
} |
44
|
|
|
|
45
|
|
View Code Duplication |
public function view($id) { |
|
|
|
|
46
|
|
|
try { |
47
|
|
|
$releases = new SdReleases(); |
48
|
|
|
$release = $releases->find($id); |
|
|
|
|
49
|
|
|
//dd($release); |
50
|
|
|
if ($release) { |
51
|
|
|
return view('itil::releases.show', compact('release')); |
52
|
|
|
} else { |
53
|
|
|
throw new \Exception('Sorry we can not find your request'); |
54
|
|
|
} |
55
|
|
|
} catch (Exception $ex) { |
56
|
|
|
return redirect()->back()->with('fails', $ex->getMessage()); |
57
|
|
|
} |
58
|
|
|
} |
59
|
|
|
|
60
|
|
View Code Duplication |
public function releasescreate() { |
|
|
|
|
61
|
|
|
try { |
62
|
|
|
|
63
|
|
|
$sd_release_status = SdReleasestatus::lists('name', 'id')->toArray(); |
64
|
|
|
$sd_release_priorities = SdReleasepriorities::lists('name', 'id')->toArray(); |
65
|
|
|
$sd_release_types = SdReleasetypes::lists('name', 'id')->toArray(); |
66
|
|
|
$sd_locations = SdLocations::lists('title', 'id')->toArray(); |
67
|
|
|
// $assets = SdAssets::lists('name', 'id')->toArray(); |
|
|
|
|
68
|
|
|
|
69
|
|
|
return view('itil::releases.create', compact('sd_release_status', 'sd_release_priorities', 'sd_release_types', 'sd_locations')); |
70
|
|
|
} catch (Exception $ex) { |
71
|
|
|
return redirect()->back()->with('fails', $ex->getMessage()); |
72
|
|
|
} |
73
|
|
|
} |
74
|
|
|
|
75
|
|
View Code Duplication |
public function releaseshandleCreate(CreateReleaseRequest $request, $return = false) { |
|
|
|
|
76
|
|
|
//dd($return); |
77
|
|
|
try { |
78
|
|
|
// dd($request); |
|
|
|
|
79
|
|
|
$sd_releases = new SdReleases; |
80
|
|
|
$sd_releases->description = $request->description; |
|
|
|
|
81
|
|
|
$sd_releases->subject = $request->subject; |
|
|
|
|
82
|
|
|
$sd_releases->planned_start_date = $request->plan_start_date; |
|
|
|
|
83
|
|
|
$sd_releases->planned_end_date = $request->plan_end_date; |
|
|
|
|
84
|
|
|
$sd_releases->status_id = $request->status; |
|
|
|
|
85
|
|
|
$sd_releases->priority_id = $request->priority; |
|
|
|
|
86
|
|
|
$sd_releases->release_type_id = $request->releasetype; |
|
|
|
|
87
|
|
|
$sd_releases->location_id = $request->location; |
|
|
|
|
88
|
|
|
|
89
|
|
|
$sd_releases->save(); |
90
|
|
|
\App\Itil\Controllers\UtilityController::attachment($sd_releases->id, 'sd_releases', $request->file('attachments')); |
|
|
|
|
91
|
|
|
if (isAsset() == true) { |
|
|
|
|
92
|
|
|
\App\Itil\Controllers\UtilityController::storeAssetRelation('sd_releases', $sd_releases->id, $request->input('asset')); |
|
|
|
|
93
|
|
|
} |
94
|
|
|
if ($return === false) { |
95
|
|
|
return \Redirect::route('service-desk.releases.index')->with('message', 'Release successfully create !!!'); |
96
|
|
|
} |
97
|
|
|
return $sd_releases; |
98
|
|
|
} catch (Exception $ex) { |
99
|
|
|
return redirect()->back()->with('fails', $ex->getMessage()); |
100
|
|
|
} |
101
|
|
|
} |
102
|
|
|
|
103
|
|
|
public function releasesedit($id) { |
104
|
|
|
try { |
105
|
|
|
$release = SdReleases::findOrFail($id); |
106
|
|
|
$sd_release_status = SdReleasestatus::lists('name', 'id')->toArray(); |
107
|
|
|
$sd_release_priorities = SdReleasepriorities::lists('name', 'id')->toArray(); |
108
|
|
|
$sd_release_types = SdReleasetypes::lists('name', 'id')->toArray(); |
109
|
|
|
$sd_locations = SdLocations::lists('title', 'id')->toArray(); |
110
|
|
|
// $assets = SdAssets::lists('name', 'id')->toArray(); |
|
|
|
|
111
|
|
|
|
112
|
|
|
return view('itil::releases.edit', compact('sd_release_status', 'sd_release_priorities', 'sd_release_types', 'sd_locations', 'locations_address', 'release')); |
113
|
|
|
} catch (Exception $ex) { |
114
|
|
|
return redirect()->back()->with('fails', $ex->getMessage()); |
115
|
|
|
} |
116
|
|
|
} |
117
|
|
|
|
118
|
|
View Code Duplication |
public function releaseshandleEdit($id, CreateReleaseRequest $request) { |
|
|
|
|
119
|
|
|
try { |
120
|
|
|
|
121
|
|
|
$sd_releases = SdReleases::findOrFail($id); |
122
|
|
|
$sd_releases->fill($request->input())->save(); |
123
|
|
|
\App\Itil\Controllers\UtilityController::attachment($sd_releases->id, 'sd_releases', $request->file('attachments')); |
124
|
|
|
if (isAsset() == true) { |
|
|
|
|
125
|
|
|
\App\Itil\Controllers\UtilityController::storeAssetRelation('sd_releases', $sd_releases->id, $request->input('asset')); |
|
|
|
|
126
|
|
|
} |
127
|
|
|
return \Redirect::route('service-desk.releases.index')->with('message', 'Release successfully Edit !!!'); |
128
|
|
|
} catch (Exception $ex) { |
129
|
|
|
return redirect()->back()->with('fails', $ex->getMessage()); |
130
|
|
|
} |
131
|
|
|
} |
132
|
|
|
|
133
|
|
|
public function releasesHandledelete($id) { |
134
|
|
|
try { |
135
|
|
|
$sd_releases = SdReleases::findOrFail($id); |
136
|
|
|
$sd_releases->delete(); |
137
|
|
|
|
138
|
|
|
return \Redirect::route('service-desk.releases.index')->with('message', 'Release successfully Delete !!!'); |
139
|
|
|
} catch (Exception $ex) { |
140
|
|
|
return redirect()->back()->with('fails', $ex->getMessage()); |
141
|
|
|
} |
142
|
|
|
} |
143
|
|
|
|
144
|
|
|
public function sendCab($id, $cabid) { |
145
|
|
|
$activity = 'sd_releases'; |
146
|
|
|
$owner = "$activity:$id"; |
147
|
|
|
$url = url("service-desk/cabs/vote/$cabid/$owner"); |
148
|
|
|
\App\Itil\Controllers\UtilityController::cabMessage($cabid, $activity, $url); |
149
|
|
|
} |
150
|
|
|
|
151
|
|
|
public function complete($id) { |
152
|
|
|
try { |
153
|
|
|
$releases = new SdReleases(); |
154
|
|
|
$release = $releases->find($id); |
|
|
|
|
155
|
|
|
if ($release) { |
156
|
|
|
$release->status_id = 5; |
157
|
|
|
$release->save(); |
158
|
|
|
} else { |
159
|
|
|
throw new Exception('Sorry we can not find your request'); |
160
|
|
|
} |
161
|
|
|
return redirect()->back()->with('success', 'updated'); |
162
|
|
|
} catch (Exception $ex) { |
163
|
|
|
return redirect()->back()->with('fails', $ex->getMessage()); |
164
|
|
|
} |
165
|
|
|
} |
166
|
|
|
|
167
|
|
|
} |
168
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.